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 раз, поэтому я считаю, что он зацикливается слишком много раз; Как только он получает последний бит данных, он, кажется, не регистрирует, что файл закончился, и снова зацикливается, но нет данных для ввода, поэтому мой код зависает.

Как я могу это исправить? Правильна ли моя логика?

Спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос