以前的警示贴掉到地下去了,再发一遍,具体情况查看:
警示后人(C语言全WA的原因
简单来说,在 MacOS 或者 Linux 系统下的文本文件每一行的行末换行符是一个 \n ,即你看到的是
1
2
实际上是 1 (\n) 2,这是我们的正常理解,和我们在控制台直接输入 1 + 回车 + 2 的效果是一样的,因此只需要处理掉一个额外字符。
然鹅洛谷的输入文件似乎是存在 windows 系统上的,而在 windows 系统中,文本文件的每一行行末是 \r + \n ,即虽然看到的是
1
2
但是实际上是 1 (\r\n) 2 ,因此需要处理掉的额外字符有两个。(不信的话可以把前面的字符不输出,输出第一个额外字符,洛谷的 WA 会提示出现一个 ACSII 码为 13( 0D 也就是 \r )的异常字符)
另外这个现象在字符串题单十分明显,大家小心。