考慮以下幾點:爲什麼我的代碼從輸入文件讀取一行。 C++不知道
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
int score;
char grade;
ofstream myfileo;
ifstream myfilei;
myfilei.open ("example.txt");
while (!myfilei.eof()) {
myfilei >> score;
cout << "Enter your score:" << endl;
if (score >= 90)
grade = 'A';
else if (score >= 80)
grade = 'B';
else if (score >= 70)
grade = 'C';
else if (score >= 60)
grade = 'D';
else
grade = 'F';
cout << "Your grade was a" << grade << endl;
switch (grade) {
case 'A': case 'B':
cout << "Good job" << endl;
break;
case 'C':
cout << "Fair job" << endl;
break;
case 'F': case 'D':
cout << "Failure" << endl;
break;
default:
cout << "invalid" << endl;
}
}
myfilei.close();
myfileo.close();
return 0;
system ("PAUSE");
}
此代碼僅讀取從examples.txt
文件的最後一行是完全格式化這樣的 「成績」 的:
95
21
41
78
91
爲什麼上面的代碼沒有讀入並輸出所有行?
編輯現在它只是一個死循環
當然,它只做最後一行,循環讀取直到文件結束。 – Porco
@Porco:你應該讓這個評論成爲答案! – Skizz
可能重複[eof()壞習慣?](http://stackoverflow.com/questions/5837639/eof-bad-practice) –