| 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 eof() returns true.
In typical usage, input stream processing stops on any error; eof() and fail() are then used to distinguish between different error conditions.
Example
#include <iostream>
#include <fstream>
#include <cstdlib>
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::iostateflags | basic_iosaccessors | |||||||
| 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) | 
 
          
Please login to continue.