关于ifstream的问题
下面是出问题的代码,其中Record是自己定义的类,为了描述方便,将原先的私有变量都改写成公有变量的形式
Record rec;
ifstream fin(fileName);
for(i=0;!fin.eof();i++)
{
fin.seekg(i*sizeof(Record),ios_base::beg);
fin.read((char *)&rec,sizeof(Record));
if(!fin.eof())
{
if(rec.exist) //exist是布尔类型
cout<<setiosflags(ios_base::left)<<setw(15)<<rec.itsName<<endl;
}
}
运行时发现,只要中间有一条记录的exist是false,后面的记录就都打印不出来了
如果把if(rec.exist)删除,则全部能打印出来。
请问这是怎么回事?与ifstream类有关,还是与bool类型有关?