33,311
社区成员
发帖
与我相关
我的任务
分享
fop << stu[i].name << std::endl;
fop << stu[i].num << std::endl;
这样每一个成员变量存在自己单独的行上,然后读取的时候按行读就行了。
std::string name;
int id;
fip >> name;
fip >> id;
fop.write((char*)&stu[i],sizeof(stu[i]));
这样直接复制内存的方法只对 pod 类型有效,比如整形,浮点,字符数组之类的。std::string 是类类型,需要把其对应的字符串写入文件才行,比如:
fop.write(stu[i].name.c_str(),stu[i].name.size());
其他的以此类推。reader 和 writer 达成协议,按照固定的格式写即可。