gpt4 book ai didi

C++ 从文本文件中读取并计算每行的总数 :

转载 作者:行者123 更新时间:2023-11-30 02:51:06 27 4
gpt4 key购买 nike

我必须用 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

第一行是周数。接下来的行每行有五个 double (每周 3 行)。并且它将重复第一行中给出的周数。到目前为止,我有这段代码来计算每周的总数。 SOmehow 它给我 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 吗?另外,我应该如何将每行的数字存储为总数。行数会因周数而异。请有人帮忙!

最佳答案

您正在对每组之间的空白行的数字求和。由于这些行上没有数字,因此总和当然仍为零。我还假设您没有阅读整个第一行来获取周数,因此那里也有一个前导零。要解决这个问题,只需在每周开始前多读一行,如下所示:

string s; 
double sum[4];

for(int j = 0; j < weeks; j++)
{
getline(in, s);
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;
}
cout << endl;
}

输出是:

277.9
319.1
271.4

232.88
299.1
294.4

关于C++ 从文本文件中读取并计算每行的总数 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19936487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com