c ++ EOF работает слишком много раз?
Это мой первый раз, когда я использую EOF и / или файлы, и у меня возникла проблема, связанная с зависанием моего кода, которая, как я полагаю, связана с тем, что мой EOF зацикливается слишком много раз.
Я вменяюсь из файла, и таким образом динамически создаю объекты, и он зависает при запуске файла.
while( !studentFile.eof() )
{
cout << "38\n";
Student * temp = new Student();
(*temp).input( studentFile );
(*sdb).insert( (*temp) );
}
Этот кусок кода является рассматриваемым кодом. Кут >> 38 "n"; это номер строки и причина, по которой я считаю, что она зависает от зацикливания один раз.
Файл содержит данные только 4 учеников, но 38 появляется 5 раз, поэтому я считаю, что он зацикливается слишком много раз; Как только он получает последний бит данных, он, кажется, не регистрирует, что файл закончился, и снова зацикливается, но нет данных для ввода, поэтому мой код зависает.
Как я могу это исправить? Правильна ли моя логика?
Спасибо.