我们假设我有以下输入:
1 2 3
5 6
10 11
13
Run Code Online (Sandbox Code Playgroud)
存储在wow.txt.
我想创建一个函数来读取输入的每一行并产生它的总和并保存为sum.txt使用C++.
在输入文件中,我们有以下内容:
1)我们不知道每一行的长度,但它最多有10个整数.
2)每个整数由空格分隔.
所以我开始
ifstream inFile;
inFile.open("wow.txt");
ofstream outFile;
outFile.open("sum.txt");
Run Code Online (Sandbox Code Playgroud)
并且不确定接下来该做什么.
我的一些朋友建议我使用getline,标记每一行,然后将字符串转换为整数,但我想知道是否有更简单的方法来做到这一点而无需来回更改类型(int to string,string to int) .
任何帮助将不胜感激.
#include <fstream>
#include <iostream>
#include <sstream>
using namespace std;
int main() {
ifstream inFile("wow.txt");
if (!inFile) {
cerr << "File wow.txt not found." << endl;
return -1;
}
ofstream outFile("sum.txt");
// Using getline() to read one line at a time.
string line;
while (getline(inFile, line)) {
if (line.empty()) continue;
// Using istringstream to read the line into integers.
istringstream iss(line);
int sum = 0, next = 0;
while (iss >> next) sum += next;
outFile << sum << endl;
}
inFile.close();
outFile.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
6
11
21
13
Run Code Online (Sandbox Code Playgroud)