You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++中提取文本文件每行的整数并分别求和?

C++实现文本文件每行整数求和

实现思路

  1. 引入文件操作、字符串处理相关头文件,完成文件读取与内容解析的基础准备。
  2. 打开目标文本文件,校验文件是否成功打开,避免路径错误或权限问题导致的异常。
  3. 逐行读取文件内容,通过字符串流拆分每行中的整数并累加求和。
  4. 输出每行的求和结果,操作完成后关闭文件。

完整代码

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>

int main() {
    // 替换为你的文本文件路径或名称
    std::ifstream inputFile("numbers.txt");
    if (!inputFile.is_open()) {
        std::cerr << "无法打开指定文件,请检查路径或权限!" << std::endl;
        return 1;
    }

    std::string line;
    int lineCount = 1;

    // 循环读取每一行内容
    while (std::getline(inputFile, line)) {
        std::istringstream lineStream(line);
        int currentNum, lineSum = 0;

        // 提取该行所有整数并累加求和
        while (lineStream >> currentNum) {
            lineSum += currentNum;
        }

        std::cout << "第" << lineCount << "行的整数和:" << lineSum << std::endl;
        lineCount++;
    }

    inputFile.close();
    return 0;
}

关键代码说明

  • 文件打开校验:std::ifstream负责读取文件,is_open()方法检查文件是否成功打开,提前拦截文件不存在、路径错误等问题。
  • 逐行读取逻辑:std::getline()每次读取一行内容到字符串变量,确保严格按行处理数据。
  • 整数拆分与求和:std::istringstream将字符串转换为输入流,通过>>运算符自动跳过空格,逐个提取整数并累加求和,兼容任意数量整数的行。

注意事项

  • 请将代码中的"numbers.txt"替换为你的实际文件路径(比如"./data/input.txt")。
  • 若文件中存在非整数内容,该行后续的内容会被忽略,如需处理此类情况,可添加额外的错误判断逻辑。

内容的提问来源于stack exchange,提问作者Kardok_Delikaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:24:30