【输入处理】【输入不定长、若干个数字的接收】HW笔试 处理输入的部分
从一行 不定长 的数字输入(数和数之间用空格隔开,如10 20 30)中提取数字,并打印
1 //从一行不定长的数字输入(数和数之间用空格隔开,如10 20 30)中提取数字,并打印
2
3 #include <iostream>
4 #include <vector>
5 #include <sstream>
6
7 using namespace std;
8
9 int main() {
10 string input;
11 getline(cin, input); // 读取一行输入
12
13 vector<int> numbers;
14 istringstream iss(input); // 使用字符串流解析输入; 用input变量初始化字符串流iss
15 int num;
16 while (iss >> num) { //字符串流对象的 >> 运算符可以自动识别并提取连续的整数值,而不需要手动编写解析逻辑。
17 //遇到非数字和换行符时,跳出循环; 遇到数字和空格不会跳出循环,空格不会被接收,但也不会因此跳出循环
18 numbers.push_back(num); // 将解析的数字添加到向量中
19 }
20
21 // 输出接收到的数字
22 for (int num : numbers) { //int num : numbers 表示将 numbers 向量中的每个元素依次赋值给 num,然后执行循环体。
23 cout << num << " ";
24 }
25 cout << endl;
26
27 //上面的换成下面这个,作用是一样的
28 //for (vector<int>::iterator it = numbers.begin(); it != numbers.end(); it++) {
29 // cout << *it << " ";
30 //}
31
32 system("pause");
33 return 0;
34 }
(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)