std::basic_ios<CharT,Traits>:: eof
bool
eof
(
)
const
;
|
||
Returns
true
if the associated stream has reached end-of-file. Specifically, returns
true
if
eofbit
is set in
rdstate()
.
See
ios_base::iostate
for the list of conditions that set
eofbit
.
Parameters
(none)
Return value
true if an end-of-file has occurred, false otherwise.
Notes
This function only reports the stream state as set 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
get()
which returned the last byte of a file,
eof()
returns
false
. The next
get()
fails to read anything and sets the
eofbit
. Only then does
eof()
return
true
.
In typical usage, input stream processing stops on any error.
eof()
and
fail()
can then be used to distinguish between different error conditions.
Example
#include <cstdlib> #include <fstream> #include <iostream> int main() { std::ifstream file("test.txt"); if (!file) // operator! is used here { std::cout << "File opening failed\n"; return EXIT_FAILURE; } // typical C++ I/O loop uses the return value of the I/O function // as the loop controlling condition, operator bool() is used here for (int n; file >> n;) std::cout << n << ' '; std::cout << '\n'; if (file.bad()) std::cout << "I/O error while reading\n"; else if (file.eof()) std::cout << "End of file reached successfully\n"; else if (file.fail()) std::cout << "Non-integer data encountered\n"; }
See also
The following table shows the value of basic_ios accessors ( good() , fail() , etc.) for all possible combinations of ios_base::iostate flags:
ios_base::iostate flags |
basic_ios
accessors
|
|||||||
eofbit
|
failbit
|
badbit
|
good() | fail() | bad() | eof() | operator bool | operator! |
false | false | false | true | false | false | false | true | false |
false | false | true | false | true | true | false | false | true |
false | true | false | false | true | false | false | false | true |
false | true | true | false | true | true | false | false | true |
true | false | false | false | false | false | true | true | false |
true | false | true | false | true | true | true | false | true |
true | true | false | false | true | false | true | false | true |
true | true | true | false | true | true | true | false | true |
checks for the end-of-file
(function) |