搜索
首页 电脑/网络 程序设计 C/C++

c++编程问题:string类怎么保存到二进制文件?

  #include #include #include using namespace std; int main() { string str1; string str2; cin >> str1; cin >> str2; ofstream outfile("temp。
  dat",ios::binary); if(! outfile) { cerr << "Error ! " <<endl; return 0; } outfile。write((char * )&str1,sizeof(string)); outfile。
  write((char * )&str2,sizeof(string)); ose(); ifstream infile("temp。dat",ios::binary); if (! infile) { cerr << "Error ! " <<endl; return 0; } ad((char * )&str1,sizeof(string)); ad((char * )&str2,sizeof(string)); cout <<str1 <<endl; cout <<str2 <<endl; return 1; } 如果我就这样执行的话,str1和str2能保存到文件,而且能够成功读取并显示。
   但如果我把“保存”的那一段代码删掉,读取就会失败,显示乱码。怎么回事?怎么解决?(不要复制一大堆东西过来,谢谢。)。

全部回答

2006-10-12

0 0
outfile.write((char * )&str1,sizeof(string)); 改成 outfile.write(str1.c_str(), ze()); string不是char*的代名词...... ad((char * )&str1,sizeof(string)); 也要改 先读到char[],然后传给string

2006-10-11

91 0
没有保存却要读出来,不产生错误还会是什么? 而且这类的操作应该通过类的序列化完成,而不是这么直接写到文件中。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C/C++
VB
数据库
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报