C++;读取文本文件并计算每行的总计: 我必须编写一个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

C++;读取文本文件并计算每行的总计: 我必须编写一个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,c++,io,computer-science,ifstream,C++,Io,Computer Science,Ifstream,第一行是周数。接下来的几行各有五行(每周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 s

第一行是周数。接下来的几行各有五行(每周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吗?另外,我应该如何将数字存储为每行的总数。行数将根据周数而变化。谁来帮忙
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;
 }
 if (!s.empty())
 {
     cout << sum[i] << endl;
 }

我认为问题在于周数是使用操作符>>读取的。之后,下一个getline调用读取一个空字符串。它可以解释第一个零。我还看到在两个三元组行之间有一条空行。看来你又读了一行空话。 除此之外,我不明白您为什么要使用循环

for(int i = 0; i <= 3 && getline(in, s); i++)

for(int i=0;i检查它是否是这样的空行:

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;
 }
 if (!s.empty())
 {
     cout << sum[i] << endl;
 }
if(!s.empty())
{

您是否可以使用以下模块:您可以随时尝试调试它。为什么不在总和循环的顶部显示“s”?循环条件等简单情况很容易出错,因此中间局部变量和大量显示调用是您的朋友(如果不是实际的调试工具:)主要问题是空行。你确定要使用
getline
?流式输入对于这个问题来说会简单得多,但也许你的目标是学习使用
getline
。这看起来像是一个家庭作业。我肯定老师给了你一本书让你读。这有助于摆脱0。我必须算出总数和在一个单独的文本文件中平均每一行。我应该如何存储总计?像在循环内,还是在循环外?对于这种特殊情况,有6个总计,但它将根据周数(周*3)进行定义。任何关于这方面的线索都将不胜感激。感谢上面的帮助!每一行正好有5个部分,对吗?(问题是这样的)当您完成每一行时,在while循环结束后立即输出总和(您已经拥有)和平均值(总和/5)。