cdcq

梦幻小鱼干

导航

'\r'的那些事

我们都知道'\n'是换行,那么'\r'是什么东西呢

为了理解'\r',就要说到历史上曾经出现过的一个东西:

打字机

打字机在换行的时候,不是像今天这样一敲回车就完事了,而是必须先换行,再把印字的那个东西顶到最开头去

事实上,'\n'就是让光标换行,而'\r'就是把光标顶到开头

为什么我专门开了一篇文章来说这个事呢?

因为'\r'的出现情况实在是太乱了……

unix系统只使用'\n',而windows同时使用'\r和'\n'

如果只是这样就太好了,然而不只是操作系统,软件们对'\r'的处理也不让人省心

比如你在最新版的windows10系统里用记事本打开一个文件并编辑,那么你会发现在这个文件里是找不到'\r'的

因为“Windows 10 1903为记事本加入了自动编码识别与Unix格式支持”

而如果用写字板写就可以造出'\r'

此外,如果你用python读一个文件,那么python会自动帮你把'\r'去掉

同样的,写文件的时候会自动帮你加上

那么如果你想用python检查或去掉'\r',就只能用二进制流读写文件

但是c和c++可不管你这么多

因此'\r'的问题仍旧是千千万万OI/ACM出题人避不开的坑╮(╯▽╰)╭

posted on 2020-12-05 20:50  cdcq  阅读(269)  评论(0编辑  收藏  举报