【发布时间】:2018-05-03 07:34:04
【问题描述】:
我是编码新手。我得到了这个我几乎完成但停留在最后一步的任务。我的老师给了我们正整数文件。一个任务是找到每一行的总和,输出一行的总和,以及文件中所有数字的总和。我的 line total 工作正常,但是当我尝试计算所有数字的总和时,我得到了错误的答案。
请检查我的代码并告诉我我做错了什么。
代码如下:
#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【问题讨论】:
-
可能与您的问题无关,但可能不相关:阅读Why is iostream::eof inside a loop condition considered wrong?
-
另外,请read about how to ask good questions,阅读例如this Stack Overflow question checklist,然后编辑您的问题以包含预期和实际输出。请learn how to debug your programs,因为它应该可以帮助您找到并解决此类问题。
-
读取和写入文件的代码最容易通过不写入/读取文件来调试;)。首先将输入硬编码到您的代码中,这也将使我们能够重现您的问题。另见minimal reproducible example
-
在第一个循环中,
counter != 9始终为真。 -
这似乎仍然需要minimal reproducible example。