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:努力进大厂的新青年

相关文章
|
算法 测试技术 开发工具
m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件
m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件
352 0
|
存储 机器学习/深度学习 编译器
ARM汇编快速入门
ARM汇编快速入门
590 0
|
存储
ENVI:(2022年最详细的教程)自定义坐标系
ENVI:(2022年最详细的教程)自定义坐标系
885 0
|
搜索推荐
AIGC如何成为教育行业的变革推动者
【1月更文挑战第14天】AIGC如何成为教育行业的变革推动者
359 2
AIGC如何成为教育行业的变革推动者
|
架构师 Java 网络安全
阿里拆中台?从架构师角度理解中台
“中台”概念的提出,一个明显的效果是提升了非IT专业人士的“架构理论”水平,所以似乎人人都“言必提中台”。但是对于IT架构专业人士来说,中台理念本属于架构持续演变中一个合理的阶段性小目标而已,在不同的环境下本应有不同的存在形式。
阿里拆中台?从架构师角度理解中台
|
11月前
|
存储 算法 关系型数据库
数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)
这篇文章主要介绍了多路查找树的基本概念,包括二叉树的局限性、多叉树的优化、B树及其变体(如2-3树、B+树、B*树)的特点和应用,旨在帮助读者理解这些数据结构在文件系统和数据库系统中的重要性和效率。
123 0
数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)
|
物联网 应用服务中间件 Linux
CentOS7.9 Nginx+EMQX集群组建MQTTS平台
通过以上步骤,您已成功搭建了一个基于CentOS 7.9、Nginx和EMQX的MQTTS平台。这个平台既能保证数据传输的安全性,又能利用Nginx的负载均衡能力和EMQX的高性能、高并发处理能力,实现稳定高效的消息服务。在部署和配置过程中,务必注意证书、域名以及EMQX配置的正确性,确保系统安全和稳定运行。此外,定期更新软件和系统,以及监控系统性能,也是保证MQTTS平台长期稳定运行的重要环节。
220 0
|
算法 C语言 开发者
C语言手撕实战代码_单链表
本文档详细介绍了使用C语言实现单链表的各种基本操作和经典算法。内容涵盖单链表的构建、插入、查找、合并及特殊操作,如头插法和尾插法构建单链表、插入元素、查找倒数第m个节点、合并两个有序链表等。每部分均配有详细的代码示例和注释,帮助读者更好地理解和掌握单链表的编程技巧。此外,还提供了判断子链、查找公共后缀等进阶题目,适合初学者和有一定基础的开发者学习参考。
136 2
|
Ubuntu Linux
在Ubuntu上卸载与离线安装OpenSSL
本文介绍了在Linux环境下离线安装OpenSSL的详细步骤,包括删除已存在关联文件、删除软件包和配置文件、解压安装包、编译安装、删除旧软链接、创建新软链接,以及验证安装版本的命令。
869 0