Source of cstr5.cpp


  1: // Filename: CSTR5.CPP
  2: // Purpose:  Reads and displays the lines from a textfile.
  3: //           Illustrates run-time input of filenames.
  4: //           Try the values 81 and then 80 for "numChars" and
  5: //           explain the difference in behavior when the input
  6: //           file contains lines of exactly 80 characters.

  8: #include <iostream>
  9: #include <fstream>
 10: #include <cstring>
 11: using namespace std;

 13: #include "PAUSE.H"

 15: int main()
 16: {
 17:     cout << endl;
 18:     cout << "This program asks the user for the name "
 19:          << "of a textfile and then displays the "     << endl
 20:          << "lines from that file.  It then repeats "
 21:          << "the entire process one more time. "       << endl;
 22:     cout << endl;

 24:     ifstream inFile;
 25:     typedef char String80[81];
 26:     String80 line, fileName;

 28:     int numChars;
 29:     cout << "Enter the maximum number of characters per line: ";
 30:     cin >> numChars;  cin.ignore(80, '\n');  cout << endl;

 32:     cout << "Enter name of first file to read: ";
 33:     cin >> fileName;  cin.ignore(80, '\n');  cout << endl;
 34:     inFile.open(fileName);
 35:     cout << "Here are the lines in the file " << fileName << ":\n";
 36:     inFile.getline(line, numChars + 1);
 37:     while (inFile)
 38:     {
 39:         cout << line << endl;
 40:         inFile.getline(line, numChars + 1);
 41:     }
 42:     inFile.close();  Pause(0);  cout << endl;

 44:     cout << "Enter name of second file to read: ";
 45:     cin >> fileName;  cin.ignore(80, '\n');  cout << endl;
 46:     inFile.clear();
 47:     inFile.open(fileName);
 48:     cout << "Here are the lines in the file " << fileName << ":\n";
 49:     inFile.getline(line, numChars + 1);
 50:     while (inFile)
 51:     {
 52:         cout << line << endl;
 53:         inFile.getline(line, numChars + 1);
 54:     }
 55:     inFile.close();  Pause(0);  cout << endl;

 57:     return 0;
 58: }