【发布时间】:2013-11-25 00:48:12
【问题描述】:
我必须用 C++ 编写一个程序,该程序将从文本文件中读取并计算每行的总数。文本文件如下所示
2
14.4 56.9 54 65.7 86.9
98.6 84.9 34.7 85.5 15.4
24.4 57.9 54.9 70.7 63.5
34.4 16.9 41.9 54.7 84.98
97.6 84.9 14.7 85.5 16.4
23.4 76.9 54.9 74.7 64.5
第一行是周数。接下来的行有五个双打(每周 3 行)。并且它将重复第一行中给出的周数。到目前为止,我有这个代码来计算每周的总数。不知怎的,它给了我 0 作为每周之前的总数
string s;
double sum[4];
for(int j = 0; j < weeks; j++)
{
for(int i = 0; i <= 3 && getline(in, s); i++)
{
istringstream sin(s);
sum[i] = 0;
while (sin>>sales)
{
sum[i] = sum[i] + sales;
}
cout << sum[i] << endl;
}
}
结果如下:
0
277.9
319.1
271.4
0
232.88
299.1
294.4
有人能告诉我为什么我得到那个 0 吗?另外,我应该如何将每行的数字存储为总数。行数会因周数而异。请有人帮忙!
【问题讨论】:
-
您可以使用以下模块:code.google.com/p/inih
-
你总是可以尝试调试它。为什么不在 sum 循环的顶部显示“s”?循环条件等简单的事情很容易出错,所以中间的本地人和大量的显示调用是你的朋友,(如果不是真正的调试器:)
-
主要问题是空行。您确定要使用
getline吗?对于这个问题,流输入会简单很多,但也许你的目标是学习使用getline... -
这看起来像是家庭作业。我相信老师给了你一本书供你阅读。
标签: c++ io computer-science ifstream