【输入处理】【输入不定长、若干个数字的接收】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 }

(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)

posted @ 2023-05-12 22:31  我会变强的  阅读(15)  评论(0编辑  收藏  举报