分别读取用换行分开的两组数字,每组数字中间为空格,怎么办
时间: 2024-10-13 09:15:00 浏览: 20
如果你想要分别读取由换行分隔的两组数字,并且每组数字之间有空格,你可以使用`getline`获取每一行的内容,然后使用`std::stringstream`或`std::istringstream`将字符串分割成各个部分。这里是一个示例:
```cpp
#include <iostream>
#include <sstream>
#include <vector>
int main() {
std::string line;
std::vector<std::pair<int, int>> numberPairs; // 存储每个组的两个整数
while (std::getline(std::cin, line)) { // 循环读取直到文件结束
std::istringstream iss(line); // 创建一个istringstream
std::string token; // 存储分割出来的部分
if (iss >> token) { // 判断是否可以继续读取
if (token.empty()) continue; // 忽略空格
int num1 = std::stoi(token); // 转换为整数
if (iss >> token && !token.empty()) {
int num2 = std::stoi(token); // 另一个整数
numberPairs.push_back({num1, num2});
}
}
}
for (const auto &pair : numberPairs) {
std::cout << "第一组数字: " << pair.first << ", 第二组数字: " << pair.second << "\n";
}
return 0;
}
```
这个程序首先读取一行,然后解析该行中的数字,忽略空格。如果连续读取到两个非空的数字,它们会被认为是一对,并存储到`numberPairs`中。
阅读全文