求知道的讲一下原理!有图!

CHwhoami 2015-07-13 06:47:08

第一个文件是我用c++ ofstream对象以二进制的方式写入文本的,第二个是我自己写的,发现两个文件的大小并不相同,相差一个换行符。我的问题是,为什么二进制写入后,用记事本打开并不显示换行符?为什么别的编辑器就可以显示呢?
...全文
111 4 打赏 收藏 转发到动态 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-07-14
  • 打赏
  • 举报
回复
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。 不要把 fopen("...","...");fscanf,fprintf,fgets,fgetc,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fseek,ftell,fread,fwrite,fgetc,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了
「已注销」 2015-07-14
  • 打赏
  • 举报
回复
系统的 Notepad 对于 \r 是不显示的,对于 \n 只显示一个黑块,只有 \r\n 才显示为换行。而 Notepad2 或 Notepad++ 之类将成对的 \r\n (Windows) 或单独 \r (Mac) 或单独 \n (UNIX/Linux) 都是以换行来显示。
碼上道 2015-07-13
  • 打赏
  • 举报
回复
windows notepad支持的回车可能都是要\r\n这样的,只有一个不显示换 行,notepad++显然更兼容一点。对于一个\r或者一个\n都行,说到底是不同的软件对于换行的处理问题。
CHwhoami 2015-07-13
  • 打赏
  • 举报
回复
不要沉啊!
相关推荐

3,879

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告