永发信息网

为什么用C++写文件得到乱码?

答案:1  悬赏:0  手机版
解决时间 2021-02-15 23:00
  • 提问者网友:黑米和小志
  • 2021-02-15 11:35
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
using namespace std;
class W{
string ch;
string en;
public:
W(string a,string b);
string search(string x);
};
W::W(string a,string b)
{
ch=a;
en=b;
}
string W::search(string x)
{ string m;
if (en==x)
m=ch;
else
m="0";
return m;}

int main(){
ofstream newfile("D:\\12.doc",ios::trunc|ios::in|ios::binary);
if(!newfile)
{
cout<<"failed!"<<endl;
exit(1);
}
W a[]={W("数字","number"),W("人","people"),W("门","door"),W("电脑","computer"),W("玻璃","glass"),W("键盘","key")};
for(int i=0;i<sizeof(a)/sizeof*a;i++)
newfile.write((char *)&a[i],sizeof(a[i]));
newfile.close();
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-02-15 12:58
应该是中文的问题。
你在main中加上这句试试

locale::global(locale(""));
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯