2017-06-27 186 views
-1

从文件txt。从txt文件读取多行C++

44 55 77 88 
79 88 100 99 
77 99 98 99 
100 88 89 100 
55 56 40 77 

我该如何逐行读取并获得平均值?这是我迄今为止所拥有的。

int main() 
{ 

    ifstream numberInputFile; 
    int sum = 0.0, average = 0.0; 
    int test1, test2, test3, test4;  
    numberInputFile.open("grades.txt"); 
    if (numberInputFile) 
    { 
     while (numberInputFile >> test1 >> test2 >> test3 >> test4) 
     { 
      sum += (test1 + test2 + test3 + test4); 

      //find the average 

      average = sum/4; 

      if(average >= 90 && average <= 100) 
      { 
       cout << average << " A" <<endl; 
      } 
      else if(average >= 80 && average < 90) 
      { 
       cout << average << " B" <<endl; 
      } 
      else if(average >= 70 && average < 80) 
      { 
       cout << average << " C" <<endl; 
      } 
      else if(average >= 60 && average < 70) 
      { 
       cout << average << " D" <<endl; 
      } 
      else if(average < 60) 
      { 
       cout << average << " F" <<endl; 
      } 
      else 
       numberInputFile.close(); 
     } 
    } 
    return 0; 
} 
+0

怎么样了没有你没有你想要什么呢? – NathanOliver

+0

你测试过了吗?有什么问题? – Javia1492

+0

它只读第一行并停止。 – Dip

回答

-1

相反的:

if (numberInputFile) 
    {} 
     while (numberInputFile >> test1 >> test2 >> test3 >> test4) 
     {} 

尝试:

string line; 
    while(getline(inFile, line)) 
    { 
    std::istringstream iss(line) 
     while(iss >> test) 
     { sum+=test; 
      . 
      . 
      .. 
     } 
    //Check average here, outside the loop 

    } 
+0

让我知道这是否有效。 –