There is no ASCII value EOF. The is a C defined constant EOF it is of type int.
Using fgetc, prototype
int fgetc( FILE *stream );
then notice it returns an int, this is so it can return EOF which is an int, if it is not EOF then it returns an ASCII value.
This code is wrong
char c = fgetc( stream );
because you can not check for EOF because you have lost that value in the convertion from int to char, this is correct
int value = fgetc( stream );
if ( value != EOF )
{
char ascii = (char)value;
}