1: // Filename: CSTR3.CPP
2: // Purpose: Illustrates input of C-style strings with cin.get and
3: // with cin.getline.
5: #include <iostream>
6: #include <cstring>
7: using namespace std;
9: #include "PAUSE.H"
11: int main()
12: {
13: cout << endl;
14: cout << "This program illustrates input of C-strings "
15: << "with cin.get, as well as input " << endl
16: << "of C-string \"lines\" with cin.getline. "
17: << "Study the source code carefully while " << endl
18: << "running it. Note that you get to choose "
19: << "the string size, or the line size, " << endl
20: << "on each pass. When in one of the string-"
21: << "reading loops, at each pause you " << endl
22: << "may either press ENTER to continue or "
23: << "enter an end-of-file to quit. " << endl;
24: cout << endl;
25: Pause(0); cout << endl;
27: char ch;
29: const int MAX_STR_SIZE = 10;
30: typedef char String10[MAX_STR_SIZE + 1];
31: String10 s1, s2;
33: int numChars;
35: do
36: {
37: cout << "Now reading with cin.get ..." << endl;
38: cout << "Enter the string size (<= " << MAX_STR_SIZE
39: << ") for this pass: ";
40: cin >> numChars; cin.ignore(80, '\n');
42: cout << "Enter the strings below, on separate lines:" << endl;
43: cin.get(s1, numChars + 1); cin.get(ch);
44: cin.get(s2, numChars + 1); cin.get(ch);
46: cout << "The two strings are on the next two lines:" << endl;
47: cout << s1 << "<<" << endl;
48: cout << s2 << "<<" << endl;
49: Pause(0); cout << endl;
51: } while (cin);
53: cout << endl;
55: cin.clear();
58: do
59: {
60: cout << "Now reading with cin.getline ..." << endl;
61: cout << "Enter the string size (<= " << MAX_STR_SIZE
62: << ") for this pass: ";
63: cin >> numChars; cin.ignore(80, '\n');
65: cout << "Enter the two lines below: " << endl;
66: cin.getline(s1, numChars + 1);
67: cin.getline(s2, numChars + 1);
69: cout << "Here are the two lines:" << endl;
70: cout << s1 << "<<" << endl;
71: cout << s2 << "<<" << endl;
73: Pause(0); cout << endl;
75: } while (cin);
77: cout << endl;
79: return 0;
80: }