Namespaces
Variants
Actions

std::feof

From cppreference.com
< cpp‎ | io‎ | c
 
 
 
 
Defined in header <cstdio>
int feof(std::FILE* stream );

Checks if the end of the given file stream has been reached.

Contents

[edit]Parameters

stream - the file stream to check

[edit]Return value

Nonzero value if the end of the stream has been reached, otherwise 0.

[edit]Notes

This function only reports the stream state as reported by the most recent I/O operation, it does not examine the associated data source. For example, if the most recent I/O was a std::fgetc, which returned the last byte of a file, std::feof returns zero. The next std::fgetc fails and changes the stream state to end-of-file. Only then std::feof returns non-zero.

In typical usage, input stream processing stops on any error; feof and std::ferror are then used to distinguish between different error conditions.

[edit]Example

#include <cstdio>#include <cstdlib>   int main(){int is_ok =EXIT_FAILURE; FILE* fp =std::fopen("/tmp/test.txt", "w+");if(!fp){std::perror("File opening failed");return is_ok;}   int c;// Note: int, not char, required to handle EOFwhile((c =std::fgetc(fp))!=EOF)// Standard C I/O file reading loopstd::putchar(c);   if(std::ferror(fp))std::puts("I/O error when reading");elseif(std::feof(fp)){std::puts("End of file reached successfully"); is_ok =EXIT_SUCCESS;}   std::fclose(fp);return is_ok;}

Output:

End of file reached successfully

[edit]See also

checks if end-of-file has been reached
(public member function of std::basic_ios<CharT,Traits>)[edit]
clears errors
(function)[edit]
displays a character string corresponding of the current error to stderr
(function)[edit]
checks for a file error
(function)[edit]
close