【发布时间】:2016-11-30 03:05:27
【问题描述】:
下面是代码:
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("WORD\b\b WORD\b\b");
return 0;
}
生成此输出:
WO WORD
问题是为什么最后一个\b 在第二个单词位于字符串末尾时对它们没有影响?
【问题讨论】:
-
您使用的是什么操作系统和终端?
-
我猜这是因为 '\b' 只是将光标向后移动了一步,并没有删除任何字符。 'R'和'D'从第一个'WORD'中消失的原因是因为你用空格和'W'覆盖它们。
-
"WORD\b\b WORD\b\b "会发生什么?我怀疑您的终端将光标移回,但没有删除字符。 -
@gurka 评论似乎是正确的答案!谢谢:)
-
我认为这个问题是不恰当的。给定的程序确实具有将字符打印到标准输出的效果,但系统的其他部分(例如在屏幕上显示标准输出的终端)如何解释这些字符不在 C 或 C++ 的范围内。