当前位置: 首页 > article >正文

C语言printf的输出格式大全及颜色字体打印

在这里插入图片描述
不同类型的数据有不同形式的打印格式,熟知了printf的不同输出格式会让后边的学习事半功倍。

文章目录

      • ==%d%i打印十进制整形数据==
      • ==标志(flags)==
      • ==%u打印无符号十进制==
      • ==%o 打印无符号八进制==
      • ==%x %X打印大写或小写十六进制==
      • ==%f打印浮点数==
      • ==%e %E科学计数法打印==
      • ==%g过滤%f多余的0==
      • ==%c打印字符类型==
      • ==%s打印字符窜==
      • ==%p打印传入变量地址==
      • ==%%打印%==
      • ==打印有颜色的字体==

printf函数形式如下

int printf(const char8formation,…);

该函数的功能是将格式化的数据打印到输出端。
转换说明符如下
在这里插入图片描述
逐个进行详解(关于与转义字符配合使用详见转义字符)

%d%i打印十进制整形数据

在这里插入图片描述

标志(flags)

在这里插入图片描述

  • 减号:结果左对齐,右边填补空格。默认是右对齐,左边填空格
    d前边的数字控制打印宽度。

在这里插入图片描述

  • +加号:输出正负号

在这里插入图片描述

  • 空格:输出为正时,正号用空格替代,如果输出为负数,空格被负号替代。

例如:
在这里插入图片描述

  • 井号(#):如果打印类型分别为%o,%x,%X时,增加前缀0,0x,0X。

在这里插入图片描述

如果type是a,A,e,E,f,g,G时,一定要保留小数点。默认情况下如果使用.0控制保留小数点后0位,这样是不输出小数点的,加上#标志即可显示小数点。
在这里插入图片描述

目录中还有%g,是不输出多余的零,加上#就可以保留小数点后的0.
在这里插入图片描述

  • 0,数字零

在前边控制打印宽度时,将默认补空格改为补0
例如
在这里插入图片描述

%u打印无符号十进制

在这里插入图片描述
如果用%u打印负数,那么编译器会将该负数的二进制作为正数来对待,signed int 的取值范围-231到231-1,即-2147483648~2147483647,而unsigned int的表示范围为0到232-1,-1在内存中的二进制表示为11111111111111111111111111111111,对于无符号而言,第一位不再是符号位,就表示无符号整形最大值,故打印结果为4294967295。

%o 打印无符号八进制

在这里插入图片描述

%x %X打印大写或小写十六进制

仍然是无符号的
在这里插入图片描述

%f打印浮点数

在f前加上点(.)后边加数字,标识保留几位小数。
在这里插入图片描述
他会自动四舍五入。
保存位数还可以利用星号(*),格式如下(不常用,了解就行)
在这里插入图片描述
这种方法整形也可以使用,后边的3和6是要打印的宽度。
这里要知道,%f默认保留小数点后6位
在这里插入图片描述
如果想要获得更高的精度,就要制定其精度
在这里插入图片描述

%e %E科学计数法打印

在这里插入图片描述
只服务于浮点数,打印整形会出现未知的错误(数据错误)

%g过滤%f多余的0

在这里插入图片描述
%f默认保留小数点后6位,多余的0看着碍眼就可以直接使用%g打印,不用麻烦的控制宽度。
通过C++ Reference,可以看到%g的介绍是根据数字选择%f或者%e控制最短输出,并不输出多余的0,可以看到上边的例子选择的是%f的形式(且没有打印多余的0)
再看下边的例子
在这里插入图片描述
上边的数字用%f打印需要8位,%e只需要七位,下边数字%f只需要7位,而%e需要8位,对比下来是否非常明显?

%c打印字符类型

这个很简单。
在这里插入图片描述
对照ASCII表,97代表的就是字符a,如果用%c的形式打印,就会根据ASCII码表找到相应字符并打印。

%s打印字符窜

在这里插入图片描述
用%s打印,直接给一个字符指针就可以,编译器会自动识别然后帮你打印这个字符串。

%p打印传入变量地址

学过指针的都知道,指针保存的是什么,就是指向变量的地址,%p以十六进制打印指针。
在这里插入图片描述
配合取地址操作符进行使用(&),复习复习操作符?

%%打印%

用两个%来打印%,不然打印%时有可能会和后边的字符进行结合,编译器还以为他是标识符。
在这里插入图片描述
我就想打印heihei%c到显示器上,这样写他就报错,所以要用两个%
如图
在这里插入图片描述
%a%A十六进制输出浮点数
%a和%A时C99引入的格式化类型,以十六进制的形式打印浮点数。
在这里插入图片描述
2.5的二进制为0010 1000…,将对应的二进制右移一位首字母为1(一直都是1,如果是0110 1000,那就右移两位,保持第一位为1)
在这里插入图片描述
为什么用这么复杂的表示方法呢?像0.5,2.5这样的数全都可以精确表示出来,而0.15却不能精确表示,原因可见刷题笔记第二题。
用这种表示方法就可以较为精确的表示例如15.15。
在这里插入图片描述
解析如下在这里插入图片描述

打印有颜色的字体

C语言中默认打印都是白色,有时候为了突出特定的信息,避免重要的警告或者错误的信息被其他大量打印的信息淹没,可以改变输出字体的颜色或者背景突出显示。
格式

1,printf(“\033[字体背景颜色,字体颜色m字符串\033[0m”)

以下是颜色对应数字

背景颜色字体颜色
40:黑30:黑
41:红31:红
42:绿32:绿
43:黄33:黄
44:蓝34:蓝
45:紫35:紫
46:深绿36:深绿
47:白37:白

例如
在这里插入图片描述
本文到此结束,还有哪些需要补充的大家可以评论区发言哦。


http://www.kler.cn/news/162122.html

相关文章:

  • 微信小程序中block和View组件的使用区别
  • AI发展下服务器的选择非常重要
  • mysql 链接超时的几个参数详解
  • 嵌入式总线技术学习(文章链接汇总)
  • C语言——指针(五)
  • 【C/PTA —— 15.结构体2(课内实践)】
  • 3D材质编辑:制作被火烧的木头
  • ERP数据仓库模型
  • 数学建模-二氧化碳排放及时空分布测度
  • Ubuntu安装nvidia GPU显卡驱动教程
  • SAP数据一键拉取!利用零代码ETL工具快速实现数据同步
  • 【C/PTA —— 15.结构体2(课外实践)】
  • CPU密集型和IO密集型与CPU内核之间的关系
  • Fabric 画布缩放、拖动、初始化大小
  • 人工智能_机器学习059_非线性核函数_poly核函数_rbf核函数_以及linear核函数效果对比---人工智能工作笔记0099
  • Docker快速入门(编译源码辅助技)
  • AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC
  • Android 默认打开应用的权限
  • bat脚本之加法
  • Linux_vi/vim编辑器
  • Qt基础之四十:Qt Installer Framework(QtIFW)的编译、使用和实现原理
  • 【Python系列】Python函数
  • 经验分享|MySQL分区实战(RANGE)
  • 系列学习前端之第 4 章:一文精通 JavaScript
  • 【开源视频联动物联网平台】J2mod库写一个Modbus TCP 服务器
  • 在Arch Linux上安装yay
  • Tair(1):Tair介绍
  • vue2-使用vue-i18n搭建多语言切换环境
  • gitlab-jenkins-shell-helm-chart-k8s自动化部署微服务
  • CopyOnWriteArraySet怎么用