流结束判断修改
for(int i=0;!inout.eof();i++)
{
inout.seekg(i*sizeof(people));
inout.read(reinterpret_cast<char*>(&man),sizeof(man));
if(man.getname()==(string)("")) continue;
cout<<left<<setw(15)<<man.getname()<<left<<setw(15)<<man.getbirthday()<<left<<setw(15)
<<man.getphone()<<left<<setw(15)<<man.getemail()<<left<<setw(15)<<man.getspecial()<<endl;
}
想要遍历输入输出流,读取流中各个people类对象的信息,直到流结束,可是用eof()判断流结束的时候,在最后读取了流最后一个对象的信息2次,为什么会这样呢?流前面的对象就没事,怎么修改才能使最后的对象的信息只读取一次?
[解决办法]
可能和C语言的feof一个毛病,先读一下,然后判断eof,false再使用这个数据,否则就退出。
不要先判断,要先读~