Mega Code Archive

 
Categories / C++ / File
 

IO Status

/* Name                 Meaning ios::goodbit         No error bits set ios::eofbit          1 when end-of-file is encountered; 0 otherwise ios::failbit         1 when a (possibly) nonfatal I/O error has occurred; 0 otherwise ios::badbit          1 when a fatal I/O error has occurred; 0 otherwise */ #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)) {     if(in) 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"; }