getc, getchar, fgetc - get character or word from a stream
#include <stdio.h>
getc() returns the next character (that is, byte) from the named input stream as an unsigned char converted to an int. It also moves the file pointer, if defined, ahead one character in getchar() is defined as getc(stdin). getc() and getchar() are macros.
fgetc() behaves like getc() , , but is a function rather than a macro. fgetc() runs more slowly than getc(), , but it takes less space per invocation and its name can be passed as an argument to a function.
These functions return the constant EOF at end-of-file or upon an error and set the EOF or error indicator of stream, respectively. Because EOF is a valid integer, ferror() should be used to detect getw() errors.
fclose(), ferror(), fopen(), fread(), gets(), putc(), scanf(), ungetc()
If the integer value returned by getc() , , getchar() , , fgetc() is stored into a character variable and then compared against the integer constant EOF, the comparison may never succeed, because sign-extension of a character on widening to integer is implementation dependent.
The macro version of getc() evaluates a stream argument more than once and may treat side effects incorrectly. In particular, getc(*f++) does not work sensibly. Use fgetc() instead.