C语言退格\b的打印问题

**

C语言退格\b的打印问题

**
以下是几个使用打印\b的简单例子:

1.1使用\b删除已打印出的字符:
//test1.1
#include<stdio.h>

main(){
    printf("abcde\b ");//注意到\b后面加了一个空格
}

运行结果如下图
test1.1运行结果

代码注释中特别强调了\b后加了空格,事实上,若\b后不加空格,打印结果如下,与没加\b时打印结果相同:
删掉test1.1中\b后空格的结果
再次修改代码如下:

//test1.2
#include<stdio.h>

main(){
    printf("abcde\b\b\b*");
}

运行结果如下图:
test1.2运行结果
综合上面三个例子我们可以得出,打印\b的作用并不是将之前的字符从屏幕上清除,而是将光标前移一个位置,而仅仅将光标前移并不能将此前的字符清除,除非输出一个空格将其覆盖,这便是程序test1.1所实现的。但在将程序test1.1中\b后的空格删掉后,仅仅是光标前移,而没有将已打印的字符覆盖,所以打印结果并没有显现出\b的作用。程序test1.2的运行结果更证明了这一点,将光标后退三个位置到“c”时再打印出星号,便把”c”换成了星号。

应用上述结论,我们可以做很多有趣的事,例如下面这个例子:
//test2.1
#include<stdio.h>

main(){
    int num,price;
    printf("U buy      apples.\b\b\b\b\b\b\b\b\b\b\b\b");
    scanf("%d",&num);
    printf("\nThe price is     yuan per apple.\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
    scanf("%d",&price);
    printf("\nThe total cost is %d yuan.",num*price);
}

运行结果如下图:
test2.1运行结果1

test2.1运行结果2

test2.1运行结果3

 造成一种填空的感觉,读者可以自己尝试。
  • 51
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值