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对。 这取决于控制台和/或流。