以下程序的输出是: hai
我没有得到\r
这个程序中的回车如何工作,真的可以帮助我吗?
#include <stdio.h>
#include<conio.h>
void main()
{
printf("\nab");
printf("\bsi");
printf("\rha");
_getch();
}
Run Code Online (Sandbox Code Playgroud)
ice*_*ime 68
从5.2.2/2(字符显示语义):
\b
(退格键)将活动位置移动到当前行的上一个位置.如果活动位置在线的初始位置,则不指定显示设备的行为.
\n
(新行)将活动位置移动到下一行的初始位置.
\r
(回车)将活动位置移动到当前行的初始位置.
在这里,您的代码生成:
<new_line>ab
\b
:回一个角色si
:覆盖b
with s
(asi
在第二行生成)\r
:回到当前行的开头ha
:覆盖前两个字符(hai
在第二行产生)最后,输出是:
\nhai
Run Code Online (Sandbox Code Playgroud)
一步步:
[换行符] AB
ab
Run Code Online (Sandbox Code Playgroud)
[退格] SI
asi
Run Code Online (Sandbox Code Playgroud)
[回车]公顷
hai
Run Code Online (Sandbox Code Playgroud)
回车,不会造成换行.在某些情况下,单个CR或LF可以转换为CR-LF对.这是依赖于控制台和/或流的.