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'. ExampleFILE *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. break; } else { buffer[i++] = (char) c; // Use value as char *after* checking for EOF. } } buffer[i] = '\0'; // Terminate string. See Alsogetc( ), getchar( ), putc( ), fputc( ), fgets( ), fgetwc( ), getwc( ) |