一个输入文件中有多组数据。 每组数据一行,为用空格隔开的两个正整数a和b,进行a+b 。 当a和b同时为0时停止执行。C++
时间: 2024-12-19 19:22:12 浏览: 12
在一个C++程序中,如果你需要处理一个输入文件,其中包含多组数据,每行包含两个用空格分隔的正整数a和b,并对它们求和直到遇到a和b都为0的情况,你可以按照以下步骤编写:
1. 打开并读取文件:首先,你需要使用`ifstream`打开文件,并通过循环逐行读取内容。
```cpp
#include <fstream>
#include <sstream>
int main() {
std::ifstream inputFile("input.txt"); // 假设输入文件名为"input.txt"
if (!inputFile) { // 检查文件是否成功打开
std::cerr << "Failed to open file." << std::endl;
return 1;
}
```
2. 解析数据:对于每一行,你会使用`std::istringstream`将字符串转换成整数。
```cpp
std::string line;
while (getline(inputFile, line)) {
std::istringstream iss(line);
int a, b;
if (!(iss >> a >> b)) { // 如果无法读取到两个整数,可能是到达了文件结束或有错误
break;
}
```
3. 计算并处理结果:计算两数之和,如果a和b都不为0,则继续,否则结束。
```cpp
if (a != 0 && b != 0) {
int sum = a + b;
std::cout << "Sum: " << sum << std::endl; // 输出结果
}
}
```
4. 关闭文件:最后别忘了关闭文件,释放资源。
```cpp
inputFile.close();
```
阅读全文