如何在C++中提取文本文件每行的整数并分别求和?
C++实现文本文件每行整数求和
实现思路
- 引入文件操作、字符串处理相关头文件,完成文件读取与内容解析的基础准备。
- 打开目标文本文件,校验文件是否成功打开,避免路径错误或权限问题导致的异常。
- 逐行读取文件内容,通过字符串流拆分每行中的整数并累加求和。
- 输出每行的求和结果,操作完成后关闭文件。
完整代码
#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
相关产品推荐
相关产品推荐

