c++ write函数问题

#include<fstream>usingnamespacestd;structDate{intmonday,day,year;};intmain(){Datedate... #include<fstream>
using namespace std;
struct Date
{
int monday,day,year;
};

int main()
{
Date date={6,10,92};
ofstream file("date.txt",ios_base::binary);
file.write(reinterpret_cast<char *>(&date),sizeof(date));
file.close();
return 0;
}

我是以二进制打开的文件, 按理说我找到该文件 应该看到的是 61092,但是文件里面是

展开
 我来答
夜神月YOONA
2013-06-05 · TA获得超过339个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:258万
展开全部
write(char*,length)是以二进制字节的形式写入文件的,而用记事本打开的文件是以GBK或者是unicode编码格式解码文件内容的,

一般情况下,读文件时的编码格式和写入文件的时的编码格式一样,才能显示正确。

如果需要61029的显示效果,不妨这样
ofstream file("date.txt");
file<<date.monday<<date.day<<date.year;
百度网友5722492f7
2013-06-05 · TA获得超过725个赞
知道小有建树答主
回答量:594
采纳率:0%
帮助的人:489万
展开全部
reinterpret_cast<char *>(&date),sizeof(date));
不能直接把一个结构体转换成char* 会出错是正常的。要转换结构体内部的变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李小鱼289
2019-12-04
知道答主
回答量:2
采纳率:0%
帮助的人:1375
展开全部
  • #include<stdio.h>

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式