关于换行符
先来两个词组
CR:Carriage Return , 回车。 '\r' 值为0xD。 记忆方法:return
LF : Line Feed ,换行。 '\n' 值为0xA。 记忆方法:newline
在机械打字机的时代,当需要换行的时候,先要把打字机的针头回到行首(CR),然后再移到下一行(LF)。
在不同的平台,换行的表示方法是不同的。
windows帝国 用了比较浪费的2个字符 \r\n (CR-LF)。
特别要注意的是,windows平台的用fopen函数写文件文件的时候,fopen会自动把你输入的‘\r\n’只保留一个'\n'写到文件中。
用fopen读文件的时候,又会把文件中的'\n'读成‘\r\n’给上层。 (真TMD脑残)
linux,unix阵营,始终是'\n'。
mac帝国,用'\r'来显示自己的与众不同。
如果你的代码是跨平台的,那么在解析文件的时候一定要注意trim掉'\r'。作为一个不可打印字符,一但'\r'到了你的string里,可不好找。