C++对二进制文件写入的乱码问题

qq_33641533 2016-02-23 09:57:21
计算机菜鸟提问:
struct student{
char name[20];
int num;
int age;
int sex;
};
void main(){
student stud[3]={"Li",1001,21,'f',"Na",1002,31,'m',"Was",1003,19,'f'};
ofstream outfile("e:\\\测试文件\\Text4.txt",ios::binary);
if(!outfile){
cerr<<"open error!"<<endl;
exit(1);
}
for(int i=0;i<3;i++)
outfile.write((char*)&stud[i],sizeof(stud[i]));
outfile.close();
}
运行结果是:
Li ? f Na ? m Was ? f

请问大神们这个该如何解决?
...全文
490 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33641533 2016-02-23
  • 打赏
  • 举报
回复
没用ios::binary也不行,还是这样
qq_33641533 2016-02-23
  • 打赏
  • 举报
回复
好的 我试试看
ztenv 版主 2016-02-23
  • 打赏
  • 举报
回复
显示乱码的是因为:你写入的整型是不可显示字符(查看ascii码表),可以使用UE的二进制模式看看写入的数据
微型蚂蚁 2016-02-23
  • 打赏
  • 举报
回复
二进制方式写入当然是这样。 你想怎么解决?想直接看到文字就不要以二进制写入就可以了。

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧