C语言中你一知半解的‘\b‘

简介: C语言中你一知半解的‘\b‘

在做题目的过程中,对\b的理解较模糊,以为就是和键盘上面的backspace一样,其实不然,于是找了一些资料,总结出一些知识点和大家分享一下。


一.转义字符\b的用法及其含义

1.单个\b且\b后面没有其他字符


列举几个程序来说一下这单个\b的作用,编译器是dev++;请看以下代码:


#include <stdio.h>
int main()
{
    printf("123456789\b");
    return 0;
}


输出结果如下:

75028436e1fb365c6a69cfb44db2b75b.png

总结:输出结果还是123456789,可以看出这个\b和键盘上面的backspace是不一样的。

2.多个\b且后面有字符

代码如下:

#include <stdio.h>
int main()
{
    printf("876543\b\b\b21");
    return 0;
}



输出结果如下:

d762969bbd179e081c3089e9b3c291a1.png


解释:当输出876543的时候,出现了三个\b,而这三个\b的作用就是将当输出876543的时候这个3后面的光标向前移动三个位置,然后从这三个位置的起始位置开始的这些字符把他们替换成三个\b后面的2和1,也就是将5 和4替换成2和1,最终呈现在我们眼前的便是876213。


注意:如果printf里面是汉字,也符合上述情况哦!

3.当\b遇到\n或\r

当\b遇到\n或\r,这又是一种和前面不同情况,要我们去分析,请看下面的代码:

#include <stdio.h>
int main()
{
    printf("98765\n\b\b\b4321");
    return 0;
}



输出结果如下:

33d7b380799f797ad2ec2b7de7b3a811.png

接下来请看遇到\r的去情况

#include <stdio.h>
int main()
{
    printf("98765r\b\b\b4321");
    return 0;
}


输出结果如下:

34193401fa855d88231b9314e17ead91.png

综上所述,当\b遇到换行符\n或者\r,光标就不会再向左移动了。

2023.02.05

From:努力进大厂的新青年

相关文章
|
存储 安全 算法
【BLE】 BLE配对绑定保姆级介绍
实现蓝牙通信安全,除了paring/bonding这种底层方式,用户也可以在应用层去实现相同功能,两者从功能上和安全性上没有本质区别,只不过应用层自己实现的话,需要自己选择密码算法,密钥生成,密钥交换等,如果你不是这方面的专家,你的应用就有可能会存在安全漏洞。设备跟手机绑定成功后,手机再次重连这个设备时,就会自动跳过service discovery过程,换句话说,配对的时候手机会把设备所有服务和characteristic的handle保存下来,二次重连的时候,直接用以前保存的handle值去操作设备。
5134 1
【BLE】 BLE配对绑定保姆级介绍
|
移动开发 vr&ar
数据库系统概论——关系代数详解
关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是利用对关系的运算来表达查询的。任何运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。关系代数的运算对象是关系,运算结果亦为关系。集合运算符将关系看成元组的集合从关系的“水平”方向即行的角度来进行运算专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作。
1791 1
数据库系统概论——关系代数详解
|
存储 算法 关系型数据库
数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)
这篇文章主要介绍了多路查找树的基本概念,包括二叉树的局限性、多叉树的优化、B树及其变体(如2-3树、B+树、B*树)的特点和应用,旨在帮助读者理解这些数据结构在文件系统和数据库系统中的重要性和效率。
191 0
数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)
|
9月前
|
人工智能 编解码 算法
一文详解总台春晚“子弹时间”背后技术!
一文详解总台春晚“子弹时间”背后技术!
|
算法 C语言 开发者
C语言手撕实战代码_单链表
本文档详细介绍了使用C语言实现单链表的各种基本操作和经典算法。内容涵盖单链表的构建、插入、查找、合并及特殊操作,如头插法和尾插法构建单链表、插入元素、查找倒数第m个节点、合并两个有序链表等。每部分均配有详细的代码示例和注释,帮助读者更好地理解和掌握单链表的编程技巧。此外,还提供了判断子链、查找公共后缀等进阶题目,适合初学者和有一定基础的开发者学习参考。
208 2
|
Web App开发 XML JavaScript
Python 操作浏览器:让 Python 和 Web 世界合二为一
Python 操作浏览器:让 Python 和 Web 世界合二为一
387 3
|
存储 监控 算法
强密码策略 防止暴力破解
【8月更文挑战第14天】
1151 2
|
算法 调度
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
1358 3