2017-11-10 6 views
-6

どこが間違っているかわからない。私が実行すると何も出力しないので、どこかに詰まっていて、無限に続くと思っています。 「0から200の範囲の学生の試験得点からなるファイルを読み込むプログラムを書く。次に、0-24,25- 49,50-74,75-99,100-124,125-149,150-174,175-200。入力データを出力してください。whileループにはまった?

#include "stdafx.h" 
#include "iostream" 
#include "fstream" 

using namespace std; 

int main() 
{ 
    ofstream outFile; 
    ifstream inFile; 
    int num; 
    int category[8] = { 0,0,0,0,0,0,0,0 }; 



    outFile.open("testscores.txt"); 
    if (!outFile) 
    { 
     cout << "outFile open failed." << endl; 
     return 0; 
    } 
    outFile << "blah blah" << endl << endl; 
    inFile.open("scorestest.txt"); 
    if (!inFile) 
    { 
     cout << "infile failed" << endl; 
     return 0; 
    } 
    inFile >> num; 
    while (!inFile.eof()) 
    { 
     if (num < 25) 
      category[0]++; 
     else if (num < 50) 
      category[1]++; 
     else if (num < 75) 
      category[2]++; 
     else if (num < 100) 
      category[3]++; 
     else if (num < 125) 
      category[4]++; 
     else if (num < 150) 
      category[5]++; 
     else if (num < 175) 
      category[6]++; 
     else if (num < 200) 
      category[7]++; 
    } 



    for (int i = 0; i <= 7; i++) 
    { 
     cout << "Number of Grades between" << category[i] << endl; 
     outFile << "Number of Grades between" << category[i] << endl; 
    } 
    inFile.close(); 
    outFile.close(); 


    return 0; 
} 

これで少し苦労しました。それはおそらく私のinFileですか?私は、このプログラムはあなたがファイルに進出されていない運

+4

whileループではinFileから読んでいるわけではないので、ファイル – user3288829

+3

の最後に到達することはありません。https://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop -condition-considered-wrong –

+0

デバッガでステップ実行してください。*何が起こっているかを見てください。 –

答えて

1

で動作するように取得するために書き直し異なるコードを3回をした、あなたは1 num上で動作しているあなたはnums、それ以上を読まずにしばらく前に読んでそうyoureのは得ていませんファイルの最後まで。

関連する問題