我正在尝试将对象写入文件。当我运行它一次时,它运行良好——因为文件是空的——但是当我尝试第二次运行它时,程序在从输入中获取任何内容后崩溃。
关于这段代码有什么问题的任何想法?
class student
{
fstream file;
int roll,mks;
public:
void openFile();
void getInput();
void disp();
};
void student::openFile()
{
file.open("student.dat",ios::in|ios::out|ios::app);
if(!file)
{
cout<<"write error";
_sleep(2000);
exit(1);
}
}
void student::getInput()
{
openFile();
cout<<"\nenter roll no.:";
cin>>roll;
cout<<"\nenter marks:";
cin>>mks;
file.write((char *)this,sizeof(this));
file.seekg(0);
while(!file.eof())
{
file.read((char *)this,sizeof(this));
if(file.eof())
{
break;
}
disp();
}
file.close();
}
void student::disp()
{
cout<<"\n\n\troll no.:"<<roll;
cout<<"\n\tmarks:"<<mks;
}
int main()
{
student a;
a.getInput();
getch();
return 0;
}