我正在尝试创建一个二进制文件来存储Student类的对象。但write()函数似乎不起作用。当我调用函数将数据写入文件时,它接受数据。但是,当我查询显示文件的内容时数据没有显示。任何人都可以指出我在这里做错了什么。以下是我的代码:
#include <iostream>
#include <fstream>
using namespace std;
class Student
{
int marks;
public:
void get()
{
cin>>marks;
}
void show()
{
cout<<marks<<endl;
}
};
void writ()
{
ofstream f1;
f1.open("record.dat",ios::app|ios::binary);
Student ob;
ob.get();
f1.write((char*)&ob,sizeof(ob));
f1.close();
}
void rea()
{
ifstream f2;
f2.open("record.dat",ios::in|ios::binary);
Student ob;
while(f2.read((char*)&ob,sizeof(ob)))
{
ob.show();
}
cout<<"EOF\n";
f2.close();
}
int main()
{
int ch;
do
{
cout<<"1-enter data"<<endl;
cout<<"2-show data"<<endl;
cout<<"3-Exit"<<endl;
cin>>ch;
cout<<"\n\n";
if(ch==1)
writ();
else if(ch==2)
rea();
else
break;
}while(1);
return 0;
}