C中的回车?

时间:2011-01-09 09:43:53

标签: c

以下程序的输出为:hai

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

#include <stdio.h>
#include<conio.h>

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

3 个答案:

答案 0 :(得分:66)

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

  

\b 退格)移动有效内容   位置到上一个位置   当前行。如果活跃   位置处于初始位置   一行,显示的行为   设备未指定。

     

\n 新行)移动有效内容   位置到初始位置   下一行。

     

\r 回车)移动有效   位置到初始位置   当前行。

在这里,您的代码会产生:

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

最后,输出是:

\nhai

答案 1 :(得分:12)

程序打印ab,返回一个字符并打印si覆盖b生成的asi。 回车符将插入符号返回到当前行的第一列。这意味着ha将打印在as上,结果为hai

答案 2 :(得分:5)

步骤一步:

[换行符] AB

ab

[退格] SI

asi

[回车]公顷

hai

回车,不会导致换行。在某些情况下,单个CR或LF可以转换为CR-LF对。这是控制台和/或流依赖。