首页 > 解决方案 > 从文件输入和输出

问题描述

我是编码新手。我得到了这个我几乎完成但停留在最后一步的任务。我的老师给了我们正整数文件。一个任务是找到每一行的总和,输出一行的总和,以及文件中所有数字的总和。我的总行工作正常,但是当我尝试计算所有数字的总和时,我得到了错误的答案。

请检查我的代码并告诉我我做错了什么。

这是代码:

#include <iostream>
#include <string>
#include <fstream>
#include<iomanip>
using namespace std;

int main()
{
ifstream infile; ofstream outfile;
int counter, counter2, line, sum, num;
double total;
infile.open("E:\\Lab assignments\\numberfile.txt");
if (!infile)
{
cout << "File not found, closing program" << endl;
system("pause");
exit(1);
}
outfile.open("E:\\Lab assignments\\outfile.txt");
if (!outfile)
{
cout << "Output file could not be created, closing program" << endl;
system("pause");
exit(1);
}


while (!infile.eof())

for (counter = 1; counter <= 8; counter++)
{
sum = 0;
if (counter != 9)
{
for (line = 1; line < 8; line++)
{
infile >> num;
outfile << right;
outfile << setw(6);
outfile << num << " ";
sum = sum + num;

outfile << " ";


}
outfile << "Total per line = " << sum;
outfile << endl;



}




}
total = 0;
for (counter2 = 0; counter2 <= 8; counter2++)
{

{
infile >> sum;
total = total + sum;
}

}
outfile << "All numbers total= " << total;

infile.close();
outfile.close();
return 0;


}

并带有数字的文件:

346 130 982 90 656 117 595
415 948 126 4 558 571 87
42 360 412 721 463 47 119
441 190 985 214 509 2 571
77 81 681 651 995 93 74
310 9 995 561 92 14 288
466 664 892 8 766 34 639
151 64 98 813 67 834 369

标签: c++fileinputoutput

解决方案


Computation of total sum and sum for each line in the same loop will significantly simplify your task and it will remove hidden problems in your code. Be simple :)


推荐阅读