以下程序的输出为:hai
我没有得到\r
回车在这个程序中是如何工作的,真的可以帮助我吗?
#include <stdio.h>
#include<conio.h>
void main()
{
printf("\nab");
printf("\bsi");
printf("\rha");
_getch();
}
答案 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对。这是控制台和/或流依赖。