Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Apr 2, 2001

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 <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
 vector <char> buff; // for storing input
 char c;
 while(cin.get(c) && (!cin.eof())) //until CTL-Z is pressed
  buff.push_back(c);
 cout<<endl;
 for (int i=0; i<buff.size(); ++i) // display input
  cout<<buff[i];
} 
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date