Source of whitespace_ignore.cpp


  1: //whitespace_ignore.cpp
  2: //Illustrates more C++ input, this time including cin.get() to read
  3: //whitespace and cin.ignore() to skip over "unwanted" input.

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

  8: int main()
  9: {
 10:     cout << "\nThis program is a further lesson on input, illustrating "
 11:         "both how to read\nwhitespace, and how to skip over (ignore) "
 12:         "unwanted values in the input\nstream. Read the instructions "
 13:         "for input carefully, enter values carefully\naccording to those "
 14:         "instructions, and then study both the resulting output\nand the "
 15:         "source code equally carefully to reconcile them with the given "
 16:         "input.\n\nHere are the input instructions:\n"
 17:         "1. Enter any amount of whitespace, followed by an integer.\n"
 18:         "2. Enter anything you like on the rest of the line, "
 19:         "then press Enter.\n"
 20:         "3. Enter any amount of whitespace, followed by an integer.\n"
 21:         "4. Now enter up to 20 characters. If fewer than 20 are\n"
 22:         "   entered, make the last one an exclamation mark (!).\n" 
 23:         "5. Enter any amount of whitespace, followed by an integer.\n"
 24:         "6. Finally, enter at least three more characters, "
 25:         "then press Enter.\n\n"
 26:         "Start entering data on the following line:\n";

 28:     int i1, i2, i3;
 29:     char c1, c2, c3;

 31:     cin >> i1;  cin.ignore(80, '\n');
 32:     cin >> i2;  cin.ignore(20, '!');
 33:     cin >> i3;
 34:     cin >> c1;
 35:     cin.get(c2); //This statement will read a whitespace character.
 36:     cin.get(c3); //And so will this one.

 38:     cout << "\nHere are the 3 integers and 3 characters read in:\n"
 39:          << "i1: " << i1 << "\ni2: " << i2 << "\ni3: " << i3 << "\n"
 40:          << "c1: " << c1 << "<<\n"
 41:          << "c2: " << c2 << "<<\n"
 42:          << "c3: " << c3 << "<<\n";
 43:     cout << endl;
 44: }