Source of test_input_stream.cpp


  1: //test_input_stream.cpp
  2: //Illustrates how to test the input stream.

  4: #include <iostream>
  5: #include <fstream>
  6: using namespace std;

  8: int main()
  9: {
 10:     cout << "\nThis program tests a file input stream in certain ways.\n"
 11:         "It will either open and read a file, reporting the values it "
 12:         "found.\nOr, it will report an error of some kind.\n";

 14:     int i1, i2;

 16:     ifstream inFile;
 17:     inFile.open("in_data");
 18:     if (!inFile)
 19:     {
 20:         cout << "\nError: Input data file not found ..."
 21:             "\nCreate data file and run program again.\n";
 22:         cout << endl; //Why have this statement?
 23:         return 1;
 24:     }

 26:     inFile >> i1 >> i2;
 27:     if (!inFile)
 28:     {
 29:         if (inFile.eof())
 30:         {
 31:             cout << "\nError: End of file reached before "
 32:                 "all data read.\n";
 33:             cout << endl; //Why have this statement?
 34:             inFile.close();
 35:             return 2;
 36:         }
 37:         else
 38:         {
 39:             cout << "\nError: Input data improperly formatted.\n";
 40:             cout << endl; //Why have this statement?
 41:             inFile.close();
 42:             return 3;
 43:         }
 44:     }
 45:     inFile.close();

 47:     cout << "\nThe file was actually read. The values in it were:\n";
 48:     cout << "   i1: " << i1 << "   i2: " << i2 << endl << endl;
 49:     return 0;
 50: }