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.
SyntaxFollowing is the syntax for std::ios::eof() function.
bool eof() const;Parameters
It does not accept any parameter.
Return ValueIt 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).
ExceptionsIf an exception is thrown, there are no changes in the stream.
Data RacesAccesses the stream object.
Concurrent access to the same stream object may cause data races.
ExampleLet'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 : 3Example
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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4