看过书后知道二进制写文件:数据在文件里面就是按照内存里面真实情况,不用转换直接写,对于字符将其转化为对应的ascii码存储,文本模式写文件:字符模式跟二进制一样先转换为ascii码,然后写,非字符先转化为字符然后再写其对应的ascii码文本模式的文件可以用记事本打开,我们能看懂内容,在具体的函数实现上,FILE *file;file=fopen("test.txt","wt")发现这样我将一个数组,short buf[]={1,2,3,4}写入文件test.txt,用记事本打开后还是乱码,这是问什么呢,我的打开模式已经是文本模式(wt)了啊,
而我先sprintf将buf格式化到一个字符串中,然后用记事本打开能看到内容,这是为什么呢,虽然会做了,还想搞清楚其中的道理。
请知道的朋友指教,也请大家不用粘一大堆文章说自己看,我已经搜了不少文章了。谢谢了。
而我先sprintf将buf格式化到一个字符串中,然后用记事本打开能看到内容,这是为什么呢,虽然会做了,还想搞清楚其中的道理。
请知道的朋友指教,也请大家不用粘一大堆文章说自己看,我已经搜了不少文章了。谢谢了。
解决方案 »
- 数组截取问题
- 抓图的问题。(如何避免窗口的遮挡和隐藏导致的指定窗口没有被抓到图)
- 关于DateTimePicker.Visible问题
- 很简单 或许我不知道 但不要告诉我你也不知道(高手醒目)
- 我用IActiveDesktop设置墙纸为什么不能成功?
- 有没有办法屏蔽richedit里的删掉字符的动作
- 怎样写一个rand()function
- fatal error C1001: INTERNAL COMPILER ERROR 有解决的可能吗?
- 一个关于指针作为函数参数的简单问题
- VC CListCtrl 如何显示 UTF-8 编码
- vc在两种环境下的差异........高手请进
- 急用!!! 请教mfc中有关延时问题
在内存中是 00 01 00 02 00 03 00 04 没有一个是可显示字符而ascii的1 2 3 4在内存中对应的则是 0x31 0x32 0x33 0x34
LZ应该把基本概念搞清楚
short buf[]={1,2,3,4};
在内存中是 01 00 02 00 03 00 04 00在内存中高位在后,低位在前,不好意思
谢谢你的回复,但是,我开始的打开方式已经是wt啊,就是文本方式读写啊,这样它难道不是就按照ascii吗的方式写吗