【发布时间】:2012-01-04 09:07:18
【问题描述】:
这是我第一次使用 EOF 和/或文件,我遇到了代码挂起的问题,我认为这是因为我的 EOF 循环了太多次。
我从一个文件中输入,并以这种方式动态创建对象,一旦文件运行它就会挂起。
while( !studentFile.eof() )
{
cout << "38\n";
Student * temp = new Student();
(*temp).input( studentFile );
(*sdb).insert( (*temp) );
}
这段代码就是有问题的代码。 cout >> "38\n";是行号,也是我认为它因循环一个太多次而挂起的原因。
该文件仅包含 4 个学生的数据,但 38 出现了 5 次,这就是我认为它循环了太多次的原因;一旦它得到最后一点数据,它似乎并没有注册文件已经结束,并再次循环,但没有数据输入,所以我的代码挂起。
我该如何解决这个问题?我的逻辑对吗?
谢谢。
【问题讨论】:
标签: c++ file-io freeze eof dynamic-allocation