C++ fstream流读取的问题

justforna justforna 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码(省略头文件等):
fs.open("d:\\mmmmmm.mm",ios::out|ios::binary|ios::app);
string a = "其实这不是我想说的话你难道不知道么";
string aa = "今天我从一个把豆花煮成豆腐的老几子那里买了一个豆腐";
fs.write((char *)(&a),sizeof(string));
fs.write((char *)(&aa),sizeof(string));
fs.close();

int i = 0;
int max = 0;
fs.open("d:\\mmmmmm.mm",ios::in|ios::binary);
fs.seekg(0,ios::beg);
fs.seekg(0,ios::end);
max = fs.tellg();
fs.seekg(0,ios::beg);
string s = "";

while(i < max)
{
fs.read((char *)(&s),sizeof(string));
fs.seekg(0,i);
cout<<s<<endl;
i += sizeof(string);
}
fs.close();


这一段代码第一次执行是不会出问题的,但第二次再执行就报错。
但如果把string类型换成int或者double类型,就不会有问题了。
请高手帮忙解读下为什么。


...全文
评论 5
收藏 已收藏
分享
返回顶部
justforna
C++ 语言 65,214 成员 250,514 内容