有谁能告诉我如何获得以下代码的输出:hai ?
int main()
{
printf("\nab");
printf("\bsi");
printf("\rha");
return 0;
}
答案 0 :(得分:6)
他们按照自己的意愿工作!!
\n
=>换行,转到同一列中的垂直下一个位置
\b
=> BackSpace,向后转到一个位置
\r
=>回车,与键盘中的主键相同
精心解释:
\r
的:强>
将光标移动到同一行的Home位置。
\b
的:强>
如果不在原位,将光标向后移动一个位置。
\n
的:强>
编辑(由interjay建议):根据C标准,无论平台如何,都应将光标移动到下一行的Home位置。
首先printf
之后的输出:
ab
第二个printf
之后的输出:
asi
第三次printf
之后的输出:
hai
答案 1 :(得分:1)
很明显。
程序以打印 \ nab 开始。在这里, \ n 表示转到下一行。因此,光标将转到下一行并显示其余字符,如:
<强> AB 强>
然后,程序打印 \ bsi 。在这里, \ b 表示返回一个字符并打印其余字符。所以出局了:
<强> ASI 强>
现在,最后,该程序打印 \ rha 。在这里, \ r 表示,返回到行的开头并打印其余字符。因此,输出变为:
<强>海强>
答案 2 :(得分:1)
对我来说没有!
在我的 mac 上c11
( - std = c11),控制台上的输出是:
(emtpy line)
asi
ha