c++string保存到txt文件的乱码问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:28:29
int StoreFile(List&list) //将链表中的信息输入到磁盘文件中
{
ofstream out;
out.open("Person.txt",ios::out);
if(!out)
{ cerr<<"打开存储文件失败!"<<endl;
return 0; }
Node*pnode;
Person*ppsn;
pnode=list.gethead();
while(pnode!=0)
{
ppsn=(Person*)pnode->getPerson();
out.write((char*)ppsn,sizeof(Person));//输出到磁盘文件中
pnode=list.getpnextNode(pnode); //指针后移
}
out.close();
return 0;
}

int ReadFile(List&list) //从磁盘中读取信息
{
ifstream in;
in.open("Person.txt",ios::in);
if(!in)
{
cerr<<"找不到存储文件!"<<endl;
return 0;
}
Node*pnode;
Person*ppsn;
while(!in.eof())
{
ppsn=new Person("unknown");
in.read((char*)ppsn,sizeof(Person));
pnode=new Node;
pnode->inputPerson(ppsn);
list.addNode(pnode);
}
list

你写的文件的储存方式为二进制储存,我们直接打开的时候看见的是乱码,二进制的优点在于机器处理速度快,但是我们直接不能看懂,需要用程序读出来我们才能看懂.用ascii方式储存的我们打开的时候才能看明白.

out.write((char*)ppsn,sizeof(Person));//输出到磁盘文件中

http://zhidao.baidu.com/question/13713758.html?fr=qrl3