C++ IOS::eof() function



The C++ std::ios::eof() function is used to check if the end-of-file (EOF) has been reached during input operations. This function returns a boolean value true if the EOF has been encountered, orelse it returns false.

Syntax

Following is the syntax for std::ios::eof() function.

bool eof() const;

Parameters

It does not accept any parameter.

Return Value

It returns true if the stream's eofbit error state flag is set (which signals that the End-of-File has been reached by the last input operation).

Exceptions

If an exception is thrown, there are no changes in the stream.

Data Races

Accesses the stream object.

Concurrent access to the same stream object may cause data races.

Example

Let's look at the following example, where we are going to read integers from input until the end of the input is reached.

#include <iostream>
int main()
{
    int x;
    std::cout << "Input : " << std::endl;
    while (std::cin >> x) {
        std::cout << "Input Entered : " << x << std::endl;
    }
    if (std::cin.eof()) {
        std::cout << "End Of Input Detected." << std::endl;
    } else {
        std::cout << "Error Occurred." << std::endl;
    }
    return 0;
}

Output

Output of the above code is as follows −

Input : 1 2 3 

Input Entered : 2
Input Entered : 3

Example

Consider the following example, where we are going to read either integers or words from input. In this case we are giving the wrong input and observing the output.

#include <iostream>
#include <string>
int main()
{
    std::cout << "Input : " << std::endl;
    while (true) {
        int x;
        std::string y;
        if (std::cin >> x) {
            std::cout << "Entered Number: " << x << std::endl;
        } else if (std::cin >> y) {
            std::cout << "Entered word: " << y << std::endl;
        } else {
            break;
        }
    }
    if (std::cin.eof()) {
        std::cout << "End of input detected." << std::endl;
    } else {
        std::cout << "Error occurred." << std::endl;
    }

    return 0;
}

Output

Following is the output of the above code −

Input : asde123

Error occurred.
ios.htm
Advertisements