Previous Page
Next Page


Reads a character from a file

#include <stdio.h>
int fgetc ( FILE *fp  );

The fgetc( ) function reads the character at the current file position in the specified file, and increments the file position.

The return value of fgetc( ) has the type int. If the file position is at the end of the file, or if the end-of-file flag was already set, fgetc( ) returns EOF and sets the end-of-file flag. If you convert the function's return value to char, you might no longer be able to distinguish a value of EOF from a valid character such as '\xFF'.


FILE *fp;
int c;
char buffer[1024];
int i = 0;

/* ... Open input file ... */

while ( i < 1023 )
  c = fgetc( fp );       // Returns a character on success;
  if (c == EOF)          // EOF means either an error or end-of-file.
    if (feof( fp ))
      fprintf( stderr, "End of input.\n" );
    else if ( ferror( fp ))
      fprintf( stderr, "Input error.\n" );
    clearerr( fp );      // Clear the file's error or EOF flag.
    buffer[i++] = (char) c;  // Use value as char *after* checking for EOF.
buffer[i] = '\0';        // Terminate string.

See Also

getc( ), getchar( ), putc( ), fputc( ), fgets( ), fgetwc( ), getwc( )

Previous Page
Next Page