\b
和 \r
在实践中很少使用。我刚刚发现我误解了这两个转义序列。一个简单的测试:
printf("foo\bbar\n");
我希望它输出 fobar
,因为 \b
会退格光标,而 b
会覆盖第二个 o
,而是输出:foobar
同样是 \r
:
printf("foo\rbar\n");
我以为\r
会把光标移动到当前行的行首,所以bar
会代替foo
,所以最后的输出应该是 bar
。然而,它实际上输出:
foo
bar
最佳答案
字符将像那样发送到底层输出设备(在您的情况下可能是终端仿真器)。
这取决于终端的实现,然后这些字符如何实际显示。例如,铃声 (\a
) 可能会在某些终端上触发哔声,在其他终端上触发屏幕闪烁,或者它会被完全忽略。这完全取决于终端的配置方式。
关于c -\b 和\r 在 C 中的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33360213/