feof
| Input-Output Functions |
Checks if the end of file has occurred on a stream.
int feof( FILE *file_pointer);
| file_pointer | A pointer to a file. |
Return Values
Returns a non-zero value when the position indicator reaches the End Of File in the last input operation with the specified stream. Otherwise, returns 0.
Example
The following example, for Windows platforms, opens a file and reads it into a buffer until feof returns true, indicating the end of the file.
To run the example, copy the file readme.txt from the installation's dat directory to the c drive, or copy another file and change the value of filename.
#include <stdio.h> int count, total = 0; char buffer[1000]; FILE* file_stream; char * filename = "c:\\readme.txt";
if ((file_stream = fopen(filename, "r")) == NULL) {
lr_error_message ("Cannot open %s", filename);
return -1;
}// Read until end of file
while (!feof(file_stream)) {// Read 1000 bytes while maintaining a running count
count = fread(buffer, sizeof(char), 1000, file_stream);
lr_output_message ("%3d read", count);// Check for file I/O errors
if (ferror(file_stream)) {
lr_output_message ("Error reading file %s", filename);
break;
}// Add up actual bytes read
total += count; }
lr_output_message ("Total number of bytes read = %d", total);// Close the file stream
if (fclose(file_stream))
lr_error_message ("Error closing file %s", filename);Example: Output:
Action.c(19): 1000 bytes read
Action.c(19): 1000 bytes read
...
Action.c(19): 1000 bytes read
Action.c(20): 977 read
Action.c(34): Total number of bytes read = 69977

