Linux中的换行符有CR(Carriage Return)、LF(Line Feed)和CRLF(Carriage Return & Line Feed)三种,它们一般以0x0D(CR)、0x0A(LF)和0x0D 0x0A(CRLF)的字节序列表示,常用于文本文件,用于标识文本中的换行标识。
为了明白它们各自的区别,要从它们的发明历史说起。据考证,换行最早是具有进纸功能的机器引入,它的工作原理类似于今天的打字机,每有一行文字输入完毕,它便会自动回车,也就是执行一个“回车”命令。回车又分为两个操作,一是将纸盘一保存当前光标位置(CR-Carriage Return),二是将光标换行(LF-Line Feed)。所以,双操作被称作“回车换行”,随着电脑技术的发展,这种行为也被描述为一个特殊的字符:CRLF(Carriage Return & Line Feed)。
0x0D(CR)在linux系统中用作换行符,它与LF 0x0A(LF)一起使用时,表示回车换行符(CRLF),并且它们各自也可以单独使用,效果也不一样。
例如,以下代码中涉及两个换行符:
#include
int main(){
printf("Hello, World!\r\n");
printf("Hello, CR!\r");
printf("Hello, LF!\n");
printf("Hello, CRLF!");
return 0;
}
它输出结果如下:
Hello, World!
Hello, CR!
Hello, LF!
Hello, CRLF!
可以看出,只有使用”\r\n”才能看到完整的换行符。
总结:
Linux中的换行符有CR、LF和CRLF三种,它们的意义分别为CR(Carriage Return)、LF(Line Feed)和CRLF(Carriage Return & Line Feed),分别以0x0D,0x0A和0x0D 0x0A的字节序列形式表示,用于标识文本的换行标识。使用时要注意,只有使用CRLF(0x0D 0x0A)才能完整地实现换行操作。