在做题目的过程中,对\b的理解较模糊,以为就是和键盘上面的backspace一样,其实不然,于是找了一些资料,总结出一些知识点和大家分享一下。
一.转义字符\b的用法及其含义
1.单个\b且\b后面没有其他字符
列举几个程序来说一下这单个\b的作用,编译器是dev++;请看以下代码:
#include <stdio.h> int main() { printf("123456789\b"); return 0; }
输出结果如下:
总结:输出结果还是123456789,可以看出这个\b和键盘上面的backspace是不一样的。
2.多个\b且后面有字符
代码如下:
#include <stdio.h> int main() { printf("876543\b\b\b21"); return 0; }
输出结果如下:
解释:当输出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; }
输出结果如下:
接下来请看遇到\r的去情况
#include <stdio.h> int main() { printf("98765r\b\b\b4321"); return 0; }
输出结果如下:
综上所述,当\b遇到换行符\n或者\r,光标就不会再向左移动了。
2023.02.05
From:努力进大厂的新青年