c++读入多组数据,以EOF结束。每组数据占一行,数据间以一个空格隔开,每组数据遇到-1结束。将每组数据升序排序
时间: 2024-02-27 09:52:00 浏览: 164
您可以使用while循环读入多组数据,每次读入一行,然后使用stringstream将一行数据分割成多个数字。当读入到EOF时,退出循环。对每个vector进行升序排序。以下是示例代码:
```c++
#include <iostream>
#include <vector>
#include <sstream>
#include <algorithm>
using namespace std;
int main() {
string line;
while (getline(cin, line)) {
vector<int> data;
stringstream ss(line);
int num;
while (ss >> num) {
if (num == -1) break;
data.push_back(num);
}
sort(data.begin(), data.end());
for (int i = 0; i < data.size(); i++) {
cout << data[i] << " ";
}
cout << endl;
if (cin.eof()) break;
}
return 0;
}
```
假设输入数据如下:
```
1 4 3 2 -1
6 7 9 8 5 -1
```
输出结果为:
```
1 2 3 4
5 6 7 8 9
```
阅读全文