回车符、换行符和新行

34

回车符、换行符和新行的区别是什么?它们是否取决于操作系统?为什么我们需要使用它们来进入下一行?

1个回答

42

通常,“新行”指任何被普遍解释为信号换行的字符集,包括:

  • 在DOS/Windows上是CR LF
  • 在旧版Macs上是CR
  • 在Unix变种、现代Mac上是LF

CR是回车ASCII字符(代码0x0D),通常表示为\r。 LF是换行字符(代码0x0A),通常表示为\n。

原始的打字机式计算机需要这两个字符,它们确切地执行其名称:CR将打印头归位到纸张的左侧,LF将纸张向前移动一行。 Windows保持了这个序列不变,而Unix变种则选择更高效的字符用法,一旦它们仅需要符号性地使用。

如果需要在代码中表示此序列,请确保查找跨平台的新行符号或函数。如果没有,至少要确保考虑上述三个变体。

更多历史详情请见:The Great Newline Schism - Coding Horror


5
值得注意的是,C语言转义代码\n中的“n”代表“换行符”,因此这个换行符有时被简称为“换行字符”。 - Chris Merck
2
\n 不同于 LF - 它具有表示操作系统特定的换行符号的特殊含义。Unix 选择将“向下移动一行”与“向下移动一行并到达行首”视为相同,而其他系统则选择不同。更重要的是 - 源代码本身不需要以 ASCII 开头 - 因此根本没有 LF - ABaumstumpf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接