以下是代码:
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("WORD\b\b WORD\b\b");
return 0;
}
生成此输出:
WO WORD
问题是为什么最后一个\b
对第二个词没有影响,当它们位于字符串的末尾时更具体?
答案 0 :(得分:4)
确实有影响,影响是将光标向后移动,但'\b'
除非覆盖它们,否则不会删除任何字符。
如果您想在之后打印其他内容,打印将从当前光标位置恢复。
注意:此行为取决于您用于显示文本的终端。
答案 1 :(得分:2)
这主要取决于你正在使用的shell /终端以及它如何解释退格字符。
您在上面描述的行为发生在命令提示符下的Windows上。该终端显然将光标移回后退空间的一个空格,但不删除该字符。退格后的任何字符都会覆盖以前写入的字符。
例如,如果你这样做:
printf("WORD\b\b WORD\b\bx");
您的输出将是:
WO WOxD
相反,在bash下在Ubuntu机器上运行代码会产生以下输出:
WO WO