33,318
社区成员
发帖
与我相关
我的任务
分享
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 达成协议,按照固定的格式写即可。
输入两个学生信息然后输出
把信息写入文件,输出(此时还是有两个学生的信息)
从文件中读信息,输出(学生信息全都不见了)