如何解决尝试从文件中读取对象并正确获取一些记录后,我的程序检测到eof,剩下许多记录
我正在尝试将文件中的记录读入对象。但是即使正确读取了一些记录,程序仍会检测到文件结尾,即使文件中还有更多记录。我已经使用相同类的对象将记录写在文件上,但我不明白出了什么问题。
这是我的代码-
int main()
{
long int n=0;
class_name objt[100];
ifstream fl;
fl.open(filename);
cout<<"Scanning file"<<endl<<"Please Wait"<<endl;
while(true)
{
fl.read((char*)&objt[n],sizeof(objt[n]));
if(fl.eof())
{
cout<<endl<<"END OF FILE"<<endl<<"Press any key to continue";
cin.get();
break;
}
n++;
}
fl.close();
cout<<endl<<"Scanning Complete!"
这是我正在使用的课程-
class class_name
{
public:
char name[20];
double cn ;
int code;
int unit;
};
P.S。我想将所有记录保存到对象数组中,以便对数组进行排序
解决方法
如果要执行二进制I / O,则必须以二进制模式打开文件(用于读取和写入)
ifstream fl;
fl.open(filename,ios_base::binary);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。