回车与换行

  1. 回车
  2. 换行
  3. 不同系统下的行末结束符

回车

最早,在打字机上的打字位置是固定的,归位兼换行的扳手用于将承载装纸滚筒的机架(carriage)移到最右边,以便令印字位置对准一行的开头,同时顺便转动滚筒,换至下一行。后来,当打字机的滚筒不再横向移动,改由承载印字头的字车(印字头carriage)移回到本行的起始位置。

Carriage Return“归位”这术语是电传打印机(TTY)所使用的博多码的一个控制字符,代表回到一行字的起头,但不代表换行(或称进列)。

归位键第一次由1960年在Smith Corona公司的电动打字机出现。此键一般被标为“Carriage Return”或 “Return”。为了帮助不说英语的用户学习打字,之后出版的打字机经常被标记为回车键上的那个符号😄。

换行

在计算机领域中是一种加在文字最后位置的特殊字元,在换行字元的下一个字元将会出现在下一行,实际上换行字元根据不同的硬件平台或操作系统平台会有不同的编码方式。

换行字符可以看作是行的结束符,也可以看作行之间的分隔符,这两种处理方式之间存在一些歧义。如果换行字符被当作分隔符,那么文件的最后一行就不需要再有换行字符。但是多数系统的做法是在最后一行的后面也加上一个换行字符,也就是把换行字符看作是行的结束符。这样的程序在处理末行没有换行字符的文件时,可能会存在问题。相反地,有的程序把换行符看作分隔符,就会把最末尾的换行字符看作是新行的开始,也就是多出了一个空行。

不同系统下的行末结束符

\n: UNIX 系统行末结束符

\n\r: window 系统行末结束符

\r: MAC OS 系统行末结束符

C++语言编程时(Windows)’\r’ 就是return 回到本行行首这就会把这一行以前的输出覆盖掉

如:

1
2
3
int main() {
cout << "aaaa" << "\r" << "bbbb" ;
}

输出是

bbbb //aaaa被覆盖了

1
2
3
int main() {
cout << "aaaa" << "\r" << "bbbb" ;
}

输出是

aaaa

bbbb

script>