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

相关文章
|
5月前
|
C语言
初识C语言
初识C语言
38 0
|
10月前
|
编译器 C语言 C++
ly~
|
15天前
|
网络协议 算法 关系型数据库
C语言的应用
C 语言因其高效性和对硬件的直接访问能力,在多个领域有广泛应用。在系统软件领域,它被用于开发操作系统(如 Unix 和 Linux 的内核)和嵌入式系统(如汽车电子控制系统)。在游戏开发中,C 语言常用于构建游戏引擎的底层部分(如 Unity 和 Unreal Engine 的核心模块)及性能要求高的独立游戏。此外,C 语言也用于数据库管理系统(如 MySQL 和 PostgreSQL 的核心功能)和网络编程(如 TCP/IP 协议栈和网络服务器的核心模块)。
ly~
20 3
|
2月前
|
C语言
C语言中的复合语句
C语言中的复合语句
250 1
|
5月前
|
双11 C语言
C语言:练习2
C语言:练习2
62 0
|
5月前
|
C语言
C语言中的exit函数
C语言中的exit函数
98 0
|
10月前
|
存储 C语言
初识C语言(2)
初识C语言(2)
61 0
|
11月前
|
自然语言处理 Java 编译器
零基础玩转C语言-初识C语言(上)
零基础玩转C语言-初识C语言(上)
138 0
|
11月前
|
网络协议 Unix 编译器
初识c语言(上)
初识c语言(上)
66 0
|
11月前
|
存储 安全 编译器
初识c语言(下)
初识c语言(下)
39 0