Check file status
#include <iostream> #include <fstream> using namespace std; void checkstatus(ifstream &in); int main(int argc, char *argv[]) { if(argc!=2) { cout << "Usage: DISPLAY <filename>\n"; return 1; } ifstream in(argv[1]); if(!in) { cout << "Cannot open input file.\n"; return 1; } char c; while(in.get(c)) { cout << c; checkstatus(in); } checkstatus(in); // check final status in.close(); return 0; } void checkstatus(ifstream &in) { ios::iostate i; i = in.rdstate(); if(i & ios::eofbit) cout << "EOF encountered\n"; else if(i & ios::failbit) cout << "Non-Fatal I/O error\n"; else if(i & ios::badbit) cout << "Fatal I/O error\n"; }