Я читаю текст из текстового файла, но никогда не достигаю eof, в результате чего получается бесконечный цикл.
Вот что я написал
static ifstream inF;
inF.open(file,ifstream::in);
cin.rdbuf(inF.rdbuf());
while (inF.good() && !inF.eof())
{
addStudent(students);
}
if (inF.is_open())
{
inF.close();
inF.clear();
}
Каждая итерация циклаВызовите addStudents, который обрабатывает только одну строку.Это прекрасно работает для меня.В основном я рад строк в виде D 98 76,5 66 45 (возможно) 12000 вот код:
static void addStudent(vector<Student*> students)
{
char institution;
unsigned short id;
double gAverage, pGrade, salary;
cin >> institution;
switch (institution)
{
case ALICE:
cin >> id >> gAverage >> salary;
students.push_back(new Student(institution,id,gAverage,salary));
return;
case BOB:
cin >> id >> gAverage >> salary;
students.push_back(new Student(institution,id,gAverage,salary));
return;
case COLIN:
cin >> id >> gAverage >> pGrade >> salary;
students.push_back(new CollegeStudent(institution,id,gAverage,pGrade,salary));
return;
case DANNY:
cin >> id >> gAverage >> pGrade >> salary;
students.push_back(new CollegeStudent(institution,id,gAverage,pGrade,salary));
return;
}
}
Когда я добираюсь до конца файла, цикл продолжает работать, и addStudents (который возвращает void) ничего не делает.Есть идеи почему?Спасибо!