当前位置: 代码迷 >> C语言 >> 关于\b的能力
  详细解决方案

关于\b的能力

热度:338   发布时间:2006-11-01 17:01:37.0
关于\b的能力
请问各位,用\b能否实现从后一“行”退到前一“行 ”
搜索更多相关的解决方案: 能力  

----------------解决方案--------------------------------------------------------
\b就是一个退格符,意义是向左推一个格

----------------解决方案--------------------------------------------------------
要是退到最前边,没地方退了呢?
----------------解决方案--------------------------------------------------------

退格,就是退到前一列(屏幕每行是从第1列开始的)
例如 printf("**\b\bA");
打印过程:
第一列 *
第二列 *
光标现在到第三列 执行两个\b 光标向前两列回到第一列(两个**都被退掉了) 即使加再多的\b光标也截至到第1列
输出A

结果就是A


----------------解决方案--------------------------------------------------------
以下是引用unicorn在2006-11-1 20:56:57的发言:

退格,就是退到前一列(屏幕每行是从第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**

谁帮解释下啊~~~~谢谢
----------------解决方案--------------------------------------------------------
以下是引用whw19840229在2006-11-8 20:41:53的发言:
我怎么感觉是 第一个\b是把前面的退掉了 然后第2个是把 a 弄到倒数第2个*前

printf("****\b\b\ba");

*a**

谁帮解释下啊~~~~谢谢

一开始打印****,然后光标停留在第5个位置,执行第一个\b,使光标向前移一位(即第4个*位置)以此类推,执行完第三个\b时,光标停留在第2个位置,然后再执行a时,所以a取代了第2个*
----------------解决方案--------------------------------------------------------
用gotoxy就可以到你需要的行\列,也有相应的清屏函数
----------------解决方案--------------------------------------------------------

  相关解决方案