C中的回车?

以下程序的输出是: hai

我没有得到\r回车在这个程序中是如何工作的,真的可以帮助我吗?

 #include  #include void main() { printf("\nab"); printf("\bsi"); printf("\rha"); _getch(); } 

从5.2.2 / 2(字符显示语义):

\b退格键 )将活动位置移动到当前行的上一个位置。 如果活动位置在线的初始位置,则未指定显示设备的行为。

\n新行 )将活动位置移动到下一行的初始位置。

\r回车 )将活动位置移动到当前行的初始位置。

在这里,您的代码生成:

  • ab
  • \b :支持一个字符
  • si :用s覆盖b (在第二行产生asi
  • \r :回到当前行的开头
  • ha :覆盖前两个字符(在第二行产生hai

最后,输出是:

 \nhai 

程序打印ab ,返回一个字符并打印si覆盖b得到的asi 。 回车符将插入符号返回到当前行的第一列。 这意味着ha将打印出来,结果是hai

一步步:

[换行符] AB

 ab 

[退格] SI

 asi 

[回车]公顷

 hai 

回车,不会造成换行。 在某些情况下,单个CR或LF可以转换为CR-LF对。 这取决于控制台和/或流。