受P1917折磨后(参考上一篇文章), 因为好奇心所以特意去找了这些相关的资料并亲自动手试了下. 现在在这篇文章总结一下, 也算是给自己一个复习的机会了~

首先开门见山 各系统的换行符为:
Windows: \r\n
Linux: \n
macOs: \n (原先为\r, 后来改为\n)

至于为什么会这样, 为什么会改 都是历史的问题了. 蒟蒻不懂也不谈论这些.

\r和\n在ascii表中为10和13  十六进制为0A和0D 而代码分别为CR和LF. 因此\r\n的代码也为CRLF. 这几个代码可能有点眼熟, 在一些文本编译器会有让你选择这些的选项. 例如vsc的右下角就是.  选择哪个,就可以把当前文本的换行符改变成相对应的. 而意义就是为了能在某个系统上正常显示文本.

当Windows的文本在Linux/Mac上打开, 因为Windows的换行符是\r\n的原因 文本的每行尾会有^M (因为\r)
而当Linux/Mac的文本在Windows上打开, 因为Windows的换行符是\r\n, 而文本上的换行符都是\n. 识别不出换行符, 所有文本都在一行里显示. (用记事本打开会是这样, 但如果用别的高级点的文本工具等等打开, 还是能识别出换行 但是理论上是没有换行的)

再说说oi上做题的问题, 正因为windows和linux系统的换行符不一样, 但是一些题目的测试样例数据可能是从win上生成, 也有可能会是在linux上生成(看平台情况了). 在读入字符的时候要额外小心点.


发表评论

电子邮件地址不会被公开。 必填项已用*标注

Related Posts

技...技术文章? 不存在的

我所使用的Visual Studio Code插件

1. background 通过修改css使得vsc右下角显示一张自定 Read more…

技...技术文章? 不存在的

在windows平台上安装wordpress

算是第一篇教程?(雾    其实这篇文章只是想记录一下我安装wordp Read more…