【发布时间】:2015-11-19 11:13:36
【问题描述】:
我正在为类制作这个程序,我们应该将类中的对象存储在文件中,然后加载它们。但我总是存储最后一个对象而不是第一个。尝试了 seekp 功能,但它不起作用。对象的大小也不应该是 38 字节,而不是我得到的 48 字节?
void student::load()
{
fstream fin;
fin.open("StudentData.bin",ios::binary|ios::in);
fin.read((char*)this,sizeof(*this));
}
void student::store(int z)
{
fstream fout;
fout.open("StudentData.bin",ios::binary|ios::out);
//fout.seekp(38*z, fout.beg)
cout<<sizeof(*this);
fout.write((char*)this,sizeof(*this));
}
for(i=0;i<count;i++)
{
s[i].store(i);
}
cout<<"Done!";
student pleb;
pleb.load();
pleb.showstudent();
return 0;
}
【问题讨论】:
-
我猜你每次调用
fout.open都会覆盖文件