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