Detecting end-of-file in Input Streams

std::istream and std::ifstream objects define the eof() member function which returns true when the stream object has reached the end of a file. Note that at least one read operation must be performed to raise the eof() flag. Thus, opening an empty file or positioning the file pointer at a file’s end alone won’t cause the eof() function to return true. You must read at least once from the stream or file afterwards.

Here’s a simple program that reads input from the keyboard until the user presses CTL-Z (the equivalent to EOF on most platforms) and then displays all the previously entered characters back on the user’s screen:

 #include #include #include using namespace std;int main(){ vector  buff; // for storing input char c; while(cin.get(c) && (!cin.eof())) //until CTL-Z is pressed  buff.push_back(c); cout<

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: