std::feof
From cppreference.com
 
 
 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Input/output library 
 
 
 
 
 
 
 
 
 
 
 
 
 Print functions (C++23)
 Buffers
(C++23)
(C++98/26*)
(C++20)
 Streams
 Abstractions
 File I/O
 String I/O
 Array I/O
(C++23)
(C++23)
(C++23)
(C++98/26*)
(C++98/26*)
(C++98/26*)
 Synchronized Output
(C++20)
 Types
 Error category interface
(C++11)
(C++11)
C-style I/O 
 
  
 
 
 
 
 
 
 
 
 
 
 Types and objects
 Functions
 File access
 Direct input/output
 Unformatted input/output
 Formatted input
(C++11)(C++11)(C++11)    
(C++11)(C++11)(C++11)    
 Formatted output
(C++11)
(C++11)    
 File positioning
 Error handling
feof
 Operations on files
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
Run this code
#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 EOF while ((c = std::fgetc (fp)) != EOF ) // Standard C I/O file reading loop std::putchar (c); if (std::ferror (fp)) std::puts ("I/O error when reading"); else if (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
(public member function of
std::basic_ios<CharT,Traits>) [edit] 
C documentation  for feof