C中用fwrite函数写文件问题,答案合适就揭帖!

lyr311 2003-08-20 08:22:04
C中用fwrite函数,如果往文件存入字符串或者字符,二进制的文件和文本文件差不多,只是二进制文件中的回车符成了一个小黑块,但是存入整数的时候就不一样了,哪怕存入的是1,也不一样,这是怎么回事啊,大家看看:a的ASCII码为97,为什么文本方式存储的时候不是分解成两个字符写入文件呢,而整数97存储的时候就是分成两个字符存储的呢?
上面一段话大家可能有些不明白,用fwrite函数时,打开文件方式设为"w+",也就是文本方式写入啦,而此时写入的字符窜或者字符一般是可见的,但是写入数字就不是啦,全是些小黑块,在程序中却可以把他们显示在屏幕上?为什么啊?数字此时是不是在参数为"w+"的情况下也是采用的二进制写的啊?
...全文
106 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyr311 2003-08-21
  • 打赏
  • 举报
回复
哦,谢谢楼上的老兄了,现在理解了,其对应的ASCII码是49,48,48,48,48
你所说的是十六进制,不过这个简单的问题我原先还是没有想到啊,昨天已经把这个计算出来了,则么就没有想到是其ASCII码呢,关键是给出的是数值啊,哎呀。
好了,揭帖!!!!!!!!!!
idontlikenickname 2003-08-20
  • 打赏
  • 举报
回复


00110001 00110000 00110000 00110000 00110000 00110000
是字符序列'1','0','0','0','0','0'对应的ASCII码:31,30,30,30,30,30~

lyr311 2003-08-20
  • 打赏
  • 举报
回复
关于二进制文件存储和文本格式的存储我还是有些不懂:
整数10000在内存中为二进制存储:
00100111 00010000 ,这个我理解因为10000=2^13+2^10+2^9+2^8+2^4;
其ASCII码存储就搞不懂了:
00110001 00110000 00110000 00110000 00110000 00110000
书上说的ASCII存储是与字符对应的,可是,这是怎么对应的啊?
00110001 00110000 00110000 00110000 00110000 00110000
(1) (0) (0) (0) (0) (0)
真是不懂啊!
idontlikenickname 2003-08-20
  • 打赏
  • 举报
回复


fread/fwrite用于二进制文件的读写,无论fopen的方法是什么~
fprintf/fscanf/fgets/fputs等用于文本文件~~

myazhe 2003-08-20
  • 打赏
  • 举报
回复
'a'以一个字节写入,就是97。
数字如果是字符的数字,就看得到。否则看不到,也是二进制的

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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