| I/O manipulators | ||||
| Print functions(C++23) | ||||
| C-style I/O | ||||
| 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) |
| Member functions | ||||
| State functions | ||||
basic_ios::eof | ||||
| Formatting | ||||
| Miscellaneous | ||||
| Protected member functions | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) |
bool eof()const; | ||
Returnstrue if the associated stream has reached end-of-file. Specifically, returnstrue ifeofbit is set inrdstate().
Seeios_base::iostate for the list of conditions that seteofbit.
Contents |
(none)
true if an end-of-file has occurred,false otherwise.
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 aget() which returned the last byte of a file,eof() returnsfalse. The nextget() fails to read anything and sets theeofbit. Only then doeseof() returntrue.
In typical usage, input stream processing stops on any error.eof() andfail() can then be used to distinguish between different error conditions.
#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";returnEXIT_FAILURE;} // typical C++ I/O loop uses the return value of the I/O function// as the loop controlling condition, operator bool() is used herefor(int n; file>> n;)std::cout<< n<<' ';std::cout<<'\n'; if(file.bad())std::cout<<"I/O error while reading\n";elseif(file.eof())std::cout<<"End of file reached successfully\n";elseif(file.fail())std::cout<<"Non-integer data encountered\n";}
The following table shows the value ofbasic_ios accessors (good(),fail(), etc.) for all possible combinations ofios_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)[edit] |