这是我第一次使用 EOF 和/或文件,我遇到了代码挂起的问题,我相信这是因为我的 EOF 循环了太多次。
我正在从一个文件中输入,并以这种方式动态创建对象,并且一旦文件运行它就会挂起。
while( !studentFile.eof() )
{
cout << "38\n";
Student * temp = new Student();
(*temp).input( studentFile );
(*sdb).insert( (*temp) );
}
这段代码就是有问题的代码。cout >> "38\n"; 是行号,也是我认为它挂在循环一个太多次的原因。
该文件仅包含 4 个学生的数据,但 38 出现了 5 次,这就是我认为它循环了太多次的原因;一旦它得到最后一点数据,它似乎没有记录文件已经结束,并再次循环,但没有数据输入,所以我的代码挂起。
我该如何解决?我的逻辑正确吗?
谢谢你。