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