C++ fstream流读取的问题
代码(省略头文件等):
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类型,就不会有问题了。
请高手帮忙解读下为什么。
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类型,就不会有问题了。
请高手帮忙解读下为什么。
...全文
相关推荐
raw格式的图像处理
raw格式的图像处理,C++ 用fstream流处理图像 直方图均衡 伽马变换 程序绝对复制粘贴可用
几种文件操作编程方发.doc
主要介绍了C、C++和Windows API文件操作的方法。
科技中介服务机构如何提升技术评估的智能化与专业化水平?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
高校技术转移办公室人员在开展技术推介时,如何高效生成科技成果展示材料?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
产业园区运营负责人如何实现创新资源的高效整合与精准配置?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。


