'\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出题人避不开的坑╮(╯▽╰)╭