关于序列化保存对象和读取.
在网上看到保存对象的类代码:
class MP3_clip
{
public:
string name;
int bitrate;
bool stereo;
void serialize();
void deserialize();
};
void MP3_clip::serialize()
{
int size=name.size();
ofstream arc("mp3.txt", ios::ate);
arc.write(reinterpret_cast<char *>(&size),sizeof(size));
arc.write(name.c_str(), size+1);
arc.write(reinterpret_cast<char *>(&bitrate), sizeof(bitrate));
arc.write(reinterpret_cast<char *>(&stereo), sizeof(stereo));
}
void MP3_clip::deserialize()
{
ifstream arc("mp3.txt");
int len=0;
char *p=0;
arc.read(reinterpret_cast<char *>(&len), sizeof(len));
p=new char [len+1];
arc.read(p, len+1);
name=p;
delete[] p;
arc.read(reinterpret_cast<char *>(&bitrate),sizeof(bitrate));
arc.read(reinterpret_cast<char *>(&stereo),sizeof(stereo));
}
请问如何保存多个对象和读取这些数据?
还有就是如何判断已经读完文件?