在做题目的过程中,对\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:努力进大厂的新青年

C语言中你一知半解的‘\b‘相关推荐

  1. C语言使用define定义圆周率,C语言中的宏处理

    在C语言中使用宏,我们经常这么做,但是为什么使用宏,他可以做什么,我们或许只是一知半解,下面简单介绍如何在C语言中使用宏预处理器. #define语句 对于define语句,我们已经非常熟悉,一个宏定 ...

  2. Go 知识点(19)— Go 语言中的野指针

    野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...

  3. c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题

    代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h>i ...

  4. 单片机c语言中的循环语句,单片机c语言教程:C51循环语句

    循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...

  5. python调用什么函数实现对文件内容的读取_如何使用python语言中的方法对文件进行读写操作...

    在我们使用python语言中的文件时,可以使用open()方法打开文件,close()方法关闭文件,read()方法读取文件内容,write()方法写入内容到文件中.下面利用几个实例说明文件读写方法, ...

  6. 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节

    C语言中宏定义使用的小细节 #pragma#pragma 预处理指令详解 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#p ...

  7. C语言中的指针和内存泄漏

    对于任何使用 C 语言的人,如果问他们 C 语言的最大烦恼是什么,其中许多人可能会回答说是指针和内存泄漏.这些的确是消耗了开发人员大多数调试时间的事项.指针和内存泄漏对某些开发人员来说似乎令人畏惧,但 ...

  8. C语言中连续调用rand函数,返回值不变

    C语言中连续调用rand函数,返回值不变 最近用C语言随机函数编程发现了一个奇怪的现象: 简易版代码: #include<stdio.h> #include<stdlib.h> ...

  9. (mfc)将字符串中的字符逐个按行输出_C语言中字符串输入输出

    在C语言中没有字符串类型,用字符数组处理字符串 定义 字符数组定义:char 数组名 [常量表达式][常量表达式] 一维字符数组,用于存储和处理一个字符串 . 二维字符数组,用于同时存储和处理多个字符 ...

最新文章

  1. 中台辨析:架构的演进趋势
  2. 皱眉细节完美复刻,阿尔伯塔大学团队标星2.5K的项目生成超逼真的肖像画
  3. 列表(list)、元组(tuple)、字典(dictionary)、array(数组)-numpy、DataFrame-pandas 、集合(set)...
  4. a=(1,)b=(1),c=(“1”) 分别是什么类型的数据
  5. JS判断是否是微信页面,判断手机操作系统(ios或android)并跳转到不同下载页面...
  6. Silverlight RIA Servcie 删除子对象实体提交错误的问题[解决]
  7. 关于windows下的libtorch配置
  8. IOS组件绑定无效错误
  9. 【文献阅读】Augmenting Supervised Neural Networks with Unsupervised Objectives-ICML-2016
  10. 112 Python程序中的进程操作-开启多进程(multiprocess.Process)
  11. HTTP协议5之代理--转
  12. *TEST 11 for NOIP 再次爆炸 (100-300)-----(( ! ))
  13. Arcpy处理月NDVI,最大合成法合成年NDVI
  14. 为树莓派增加MIDI接口
  15. 男人就应该对自己狠一点
  16. 苹果开发者账号注册错误:关联的Apple ID国家/地区并不匹配
  17. hibernate c0p3 mysql_COP3详细配置说明
  18. 【HUI】AccordionMenu 手风琴菜单(基于jQuery)
  19. ICP是什么意思?ICP备案和ICP证有什么不同?
  20. Python入门基础教程(非常详细),手把手教学

热门文章

  1. 红外测温仪额温枪产品/芯片/PCBA/传感器
  2. neutron组网流量发送过程
  3. CF1285C Fadi and LCM
  4. vscode中文插件失效解决方法
  5. 地下城与勇士(DNF)堕落之殿副本(GBL教阿德拉分部、GBL教研究所、GBL教孵化场)(童年的回忆)
  6. 《深度思维》内容脑图
  7. 把el-date-picker的中国标准时间转化为年月日时分秒
  8. [Greenfoot中文教程] 02 - 欢迎来到代码世界
  9. active什么牌子_maiaactive 玛娅是什么牌子,创始人,官网,怎么样详解
  10. 如何查询出一个字段不重复的记录?