侧边栏壁纸
  • 累计撰写 73 篇文章
  • 累计创建 14 个标签
  • 累计收到 1 条评论

C语言 文本文件和二进制文件读写

秋山人家
2019-07-22 / 0 评论 / 0 点赞 / 1,691 阅读 / 0 字
温馨提示:
本文最后更新于 2019-07-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

C语言 文本文件和二进制文件读写

问题:今天在调试代码的时候,出现了一个很奇怪的问题,问题出在对文件进行复制的时候,复制过去的新文件大小老是不对。
产生原因:产生的原因在于,原文件是二进制文件,而我在读取二进制文件的时候,采用的是文本文件的方式进行读取,导致问题。

学习:

  • 采用文本方式对文件进行操作,在windows中对于另起一行(\n),会替换成\r\n,对于linux平台则保持不变,在ios平台中则是\r。简单讲就是在window平台中\n存储在文件中后会被替换成\r\n,使用文本方式读取时再替换回来。

  • 文本方式和二进制方式存储,其实最大的区别在于对数字的处理,比如对数字5的处理,如果采用文本方式存储,则存储在文件中的是ascii码35,占8位。如果用二进制存储,则就是5的二进制标准,占32位。

  • 对于字符是否转换,跟读写函数是没有关系的。在w模式下,fprintf和fwrite都会对\n进行处理。同理,在b模式下,fprintf和fwrite都不会对\n进行处理。

0

评论区