我想创建一个函数来读取输入的每一行并产生它的总和,并使用C++将其保存为sum.txt

use*_*235 1 c++ iostream

我们假设我有以下输入:

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) .

任何帮助将不胜感激.

Yan*_*ang 6

使用getline和istringstream:

#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)