C++ cin输入 不定长输入

C++ 不定长输入,保存进数组,并打印

 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 
 5 int main() {
 6     vector<int> arr;
 7     int i;
 8     do {
 9         cin >> i;
10         arr.emplace_back(i);
11     } while (cin.get() != '\n');
12     for (auto it = arr.begin(); it != arr.end(); it++) {
13         cout << *it << " ";
14     }
15     cout << endl;
16     return 0;
17 }

输出

1 2 3 4 5 6 7
1 2 3 4 5 6 7

cin.get()获取输入一个字符,包含空格或换行等特殊字符,cin自动忽视空格或换行等特殊字符,cin读取一个个数字,cin.get()读取空格...以此交叉读取。

 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 
 5 int main() {
 6     vector<int> arr;
 7     int i;
 8     while (cin.get() != '\n') {
 9         cin >> i;
10         arr.emplace_back(i);
11     } 
12     for (auto it = arr.begin(); it != arr.end(); it++) {
13         cout << *it << " ";
14     }
15     cout << endl;
16     return 0;
17 }

 

输出

1 2 3 4 5 6 7
2 3 4 5 6 7

cin.get()读取第一个数字,cin忽视第一个空格读取第二个数字,cin.get()读取第二个空格...以此交叉读取,因此第一个数字1没被cin读取。

posted @ 2022-03-07 11:18  hik_老鬼  阅读(251)  评论(0)    收藏  举报