回车和换行的区别
回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。
符号 | ASCII码 | 意义 |
---|---|---|
\n | 10 | 换行 |
\r | 13 | 回车CR |
‘\r’ 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;
‘\n’ 换行,换到当前位置的下一行,而不会回到行首;
Unix系统里,每行结尾只有“<换行>”,即"\n";
Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;
Mac系统里,每行结尾是“<回车>”,即"\r";。
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
注意点:
在解析文本或其他格式的文件内容时,常常要碰到判定回车换行的地方,这个时候就要注意既要判定"\r\n"又要判定"\n"。
写程序时可能得到一行,将其进行trim掉’\r’,这样能得到你所需要的string了。
尤其是文本需要在不同系统里输出时,需要注意判断。
参考:https://www.cnblogs.com/xiaotiannet/p/3510586.html