C语言问题(为什么这个尀b没有起作用呢,如果删除尀n是可以删掉最后的那个星。)

2025-01-08 07:32:51
推荐回答(3个)
回答1:

不用是\b还是\b\n都不会删除掉最后的*号,只是楼主使用的是VC6.0编译器,会在程序结束时默认调用system("pause..");这句话,打印一下Press any……这句话,导致了最后的*号被P覆盖了,看着好像删除了似的。


C语言的转义字符如下:

\b  退格(BS) ,将当前位置移到前一列

\n  换行(LF) ,将当前位置移到下一行开头

\r  回车(CR) ,将当前位置移到本行开头


所有的转义字符都只是移动当前的光标位置,即下一次打印的位置而已。

1、在printf("\b\n");之前,打印如下_表示当前光标位置
2*2*5*_
2、当执行了\b之后,光标位置移动到了*号的下面
2*2*5_*(这里面没有办法在*号下面加_,所以*放在了_后面)
3、当执行了\n之后,光标位置移动到了第二行的开始
2*2*5*
_
这个时候程序结束了,打印了一下Press any……这句话,从光标位置打印
2*2*5*
Press any……

但是如果没有\n的话,执行完了第2步,光标位置在*号的位置上,程序结束了,打印了一下Press any……这句话,P将*号替换了,好像b被删除了,其实只是被替换了而已

回答2:

\b 的意思不是 删除
而是将当前 "光标"位置后退一格
你可以:
printf("\b \n");
试试 \b与 \n之间有空格

回答3:

你没有把*覆盖,在\b后加个空格。