Меня попросили получить текст и цифры из .txt-файла в программу на C++. То, что я не знаю, число студентов, я буду сортировочных их оценки так, я использую время цикла с условием fin.eof() Код:Входы файлов в циклы
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream fin;
fin.open("grades.txt");
cout << "Name\t\t\t" << "Midterm\t" << "HMAvg\t" << "Final\t" << "Average\t" << "Grade" << endl;
while(!fin.eof())
{
string name;
double mdtrm, final, hw, shw=0, ahw=0, avg;
char grade;
getline(fin, name);
fin >> mdtrm;
fin >> final;
for(int i=0; i<5; i++)
{
fin >> hw;
shw = shw+hw;
}
ahw = shw/5;
avg = ((mdtrm*0.3)+(final*0.4)+(ahw*0.3));
if(avg>=90 && avg<=100)
grade = 'A';
else if(avg>=80 && avg<90)
grade = 'B';
else if(avg>=70 && avg<80)
grade = 'C';
else
grade = 'F';
cout << name << "\t" << mdtrm << "\t" << ahw << "\t" << final << "\t" << avg << "\t" << grade << endl;
}
fin.close();
system("pause");
return 0;
}
Она бесконечно петли. Я убедился, что .txt-файл в порядке Что случилось с моим кодом?
Прочтите [это] (http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) для начала. И [это] (http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice). –
Я предсказываю, что одна из операций ввода завершилась неудачно и оставляет поток в состоянии отказа ('fin.fail() == true'). После этого все последующие операции немедленно прекращаются, и вы не добиваетесь никакого прогресса. –
Что сказал вам отладчик? –