社区
C语言
帖子详情
Windows的换行符是\r\n还是\n?
ashamwolf
2010-10-28 10:18:21
原来一直以为Windows中,文件里面的换行符是\r\n,但昨天调试程序的时候发现:如果向文件中写入"\r\n",那么实际写入的是0x0d 0x0d 0x0a;如果写入"\n",那么写入的就是0x0d 0x0a。
我昨天测试用的是win7,但以前用xp的时候也会有异常,只是没查出是这个原因。
哪位老兄给个明确的答案?非常感谢
...全文
43102
12
打赏
收藏
Windows的换行符是\r\n还是\n?
原来一直以为Windows中,文件里面的换行符是\r\n,但昨天调试程序的时候发现:如果向文件中写入"\r\n",那么实际写入的是0x0d 0x0d 0x0a;如果写入"\n",那么写入的就是0x0d 0x0a。 我昨天测试用的是win7,但以前用xp的时候也会有异常,只是没查出是这个原因。 哪位老兄给个明确的答案?非常感谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wjlsmail
2013-05-07
打赏
举报
回复
文本用\n就可以
ji4ming2
2012-05-04
打赏
举报
回复
以前用同样的程序都以\n换行,在视窗和UNIX下输出。换行部分可能是0a0d或者只有0d,这个和操作系统有关。
但是即便是unix下输出的东西,传回视窗后,用记事本打开就看不到换行。但是换写字板、word之类就没问题。直接用cmd来现实文本文件内容也能看到换行。
然后好像用不同的ftp来穿文件,随选项不同,可能自动给换行部分加个字符,于是可以看到文件大小有变。
所以也许应该这么说,视窗下、unix下的约定如楼主所说。但是实际的程序里有“串词”的情况,因为可能需要考虑可能会读来自不同操作系统的文件。
实际写的时候,好像在视窗下,用C输出时,用一个符号\n就相当于写了二个字符\r\n。但是在unix下,这么做只输出\n。所以如果是在unix下逐个字符读视窗下的文件,得考虑读到\r的情况。
没花时间仔细试探过,所以上述说法可能有错。
bo_00
2010-10-28
打赏
举报
回复
1
是\r\n跟操作系统没关系,跟编辑软件有关系。
当你在记事本或word编辑时,按下enter,该软件默认的方式是插入回车\r,再插入换行\n。
当然如果在word下,按shift+enter,word这个软件回只向编辑的地址空间下,插入一个换行\n。
(有的编辑软件,提供设置界面接口,当按下enter时,可选择插入的是 ( 回车\r 或 换行\n 或 回车\r+换行\n)
当然如果编辑软件做了的话,也可以插入 换行\n+回车\r 或 其他任意一个值(例如0x01,0x02,0x03..))
linux上的编辑软件,一般默认是按enter,只插入一个换行\n。
walfud
2010-10-28
打赏
举报
回复
[Quote=引用 8 楼 xjpzy 的回复:]
用二进制方式时是\r\n,用文本方式时是\n
[/Quote]
说的对
xjpzy
2010-10-28
打赏
举报
回复
用二进制方式时是\r\n,用文本方式时是\n
zhutianjin4355255
2010-10-28
打赏
举报
回复
换行符是\r\n 写程序时用\n
luciferisnotsatan
2010-10-28
打赏
举报
回复
\r回车,\n换行
windows使用的换行符为\r\n
康斯坦汀
2010-10-28
打赏
举报
回复
肯定是 \r\n 类UNIX是\n
try325
2010-10-28
打赏
举报
回复
windows下换行符是\r\n
winton_adlsy
2010-10-28
打赏
举报
回复
换行符是\r\n 写程序时用\n
vanchristin
2010-10-28
打赏
举报
回复
那就是windows在写入文件的时候把一个\n转换成了\r\n,\r保持不变
「已注销」
2010-10-28
打赏
举报
回复
\r\r\n
关于
windows
系统中txt文档的
换行符
\r\n
\r\n的含义
Windows
和Linux的
换行符
CRLF/LF(\r\n,\n)
CR是Carriage-Return的缩写,即回车;LF是Line-Feed的缩写,即换行。CR和LF是在计算机终端还是电传打印机的时候遗留下来的东西。电传打字机就像普通打字机一样工作。在每一行的末端,CR命令让打印头回到左边。LF命令让纸前进一行。虽然使用卷纸的终端时代已经过去了,但是,CR和LF命令依然存在,许多应用程序和网络协议仍使用这些命令作为分隔符。Linux(unix) 和 mac 默认使用 "\n" 作为
换行符
;
Windows
默认使用 "\r\n" 作为
换行符
;
windows
下写入文本
换行符
\r\n修改为linux下
换行符
\n
最近一段时间经常使用python向文本写入数据,但是
windows
下
换行符
默认为\r\n,而linux下
换行符
为\n,写入的文本要在linux下调用,这就很坑人了,代码前行的路上怎么能被小小石头绊倒,于是乎搜索了一通,发现这个事情仅需要几行代码就搞定。 with open('input.txt', 'rU') as infile, \ open('output.txt', 'w', newline='\n') as outfile: outfile.
windows
linux
换行符
\r\n 详解
在
windows
文件定义中,
换行符
是\r\n,在linux中则是\n. \r 中r是指 carriage return(回车);\n 是指linefeed(换行)。
windows
的方式其实是兼容打印机的,也就是最早的换行方式。因为在打印机中,当打印完一行时,需要两个动作,一个是将“打印车”返回到起始位置,一个是将纸张前进到下一行。所以这个过程需要两个指令:回车(返回)(\r)和换行(
Linux和
Windows
的
换行符
\r\n
\r:回车 \n:换行 在
windows
下:\r\n代表换行,拆分两个代码是:回到行首+换到下一行 但是在linux下的区别是:只用\n即可以代表换行。 从linux随便取一个有多行内容的文件到
windows
,分别用记事本和notepad ++ 查看会有很明显的区别: 1.用记事本打开的话,在linux下换行的内容会不换行,如果有N行,会变成一行显示,原因是linux取下来的文件只有\n
C语言
70,038
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章