Source of test_pause2.cpp


  1: //test_pause2.cpp
  2: //A test driver for the Scobey::Pause() free function.
  3: //Illustrates why the Pause() function needs to have the
  4: //standard input stream empty before it is called.

  6: #include <iostream>
  7: using namespace std;

  9: #include "utilities.h"
 10: using Scobey::Pause;

 12: int main()
 13: {
 14:     Pause(0, "\nTesting the Scobey::Pause() free function ..."
 15:         "\n\nThis program shows that the pre-condition for "
 16:         "the Pause() function (an empty\ninput stream) is necessary "
 17:         "(critical, in fact) if calling the function is\nindeed to "
 18:         "cause the program to pause.");

 20:     Pause(0, "We do this by reading in two integers, clearing the input "
 21:         "stream after the\nfirst one is read but not after the second. "
 22:         "We also call the Pause() function\nafter reading each integer. "
 23:         "But, note that the although the program pauses\nafter reading the "
 24:         "first integer, it does not pause after reading the second. "
 25:         "\nThe  reason is that after reading the first integer, but not "
 26:         "after reading\nthe second, we cleared the input stream with "
 27:         "a call to cin.ignore().");

 29:     int i1;
 30:     cout << "Enter an integer: ";
 31:     cin >> i1;  cin.ignore(80, '\n');
 32:     Pause();

 34:     int i2;
 35:     cout << "Enter another integer: ";
 36:     cin >> i2;  //Should have cin.ignore(80, '\n'); here too!
 37:     Pause();

 39:     cout << "\nHere are the two integers: " 
 40:         << i1 << " " << i2 << "\n\n";

 42:     Pause(0, "No more tests to perform."
 43:         "\nProgram will now terminate.");
 44: }