----------------解决方案--------------------------------------------------------
\b就是一个退格符,意义是向左推一个格
----------------解决方案--------------------------------------------------------
要是退到最前边,没地方退了呢?
----------------解决方案--------------------------------------------------------
退格,就是退到前一列(屏幕每行是从第1列开始的)
例如 printf("**\b\bA");
打印过程:
第一列 *
第二列 *
光标现在到第三列 执行两个\b 光标向前两列回到第一列(两个**都被退掉了) 即使加再多的\b光标也截至到第1列
输出A
结果就是A
----------------解决方案--------------------------------------------------------
退格,就是退到前一列(屏幕每行是从第1列开始的)
例如 printf("**\b\bA");
打印过程:
第一列 *
第二列 *
光标现在到第三列 执行两个\b 光标向前两列回到第一列(两个**都被退掉了) 即使加再多的\b光标也截至到第1列
输出A
结果就是A
之前我在CSDN上也问过,但回帖的人说不能实现。
不过我还是坚持不停的问,终于找到答案了。谢谢
但不解的是,为何谭好强的《c程序设计》上没有介绍呢?
----------------解决方案--------------------------------------------------------
可能它不是主角。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{
printf("*\b\ba\n");
printf("**\b\ba\n");
printf("***\b\ba\n");
printf("****\b\ba\n");
}
a
a*
*a*
**a*
我执行了下 为什么输出是这样??
----------------解决方案--------------------------------------------------------
我怎么感觉是 第一个\b是把前面的退掉了 然后第2个是把 a 弄到倒数第2个*前
printf("****\b\b\ba");
*a**
谁帮解释下啊~~~~谢谢
----------------解决方案--------------------------------------------------------
我怎么感觉是 第一个\b是把前面的退掉了 然后第2个是把 a 弄到倒数第2个*前
printf("****\b\b\ba");
*a**
谁帮解释下啊~~~~谢谢
一开始打印****,然后光标停留在第5个位置,执行第一个\b,使光标向前移一位(即第4个*位置)以此类推,执行完第三个\b时,光标停留在第2个位置,然后再执行a时,所以a取代了第2个*
----------------解决方案--------------------------------------------------------
用gotoxy就可以到你需要的行\列,也有相应的清屏函数
----------------解决方案--------------------------------------------------------