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.rhkb.cn/news/212662.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【web安全】RCE漏洞原理

前言 菜某的笔记总结,如有错误请指正。 RCE漏洞介绍 简而言之,就是代码中使用了可以把字符串当做代码执行的函数,但是又没有对用户的输入内容做到充分的过滤,导致可以被远程执行一些命令。 RCE漏洞的分类 RCE漏洞分为代码执行…

如何减轻光纤激光切割机的耗损?

在日常使用激光切割机的工作中,在确保不影响工件质量的情况下,很多时候都会去思考怎么降低激光切割机的损耗,尽量提高光纤激光切割机工作效率。 下面小编将从光纤激光切割机的物理养护方面来列举几个方法来减轻光纤激光切割机的耗损。 光纤激…

Course2-Week2-神经网络的训练方法

Course2-Week2-神经网络的训练方法 文章目录 Course2-Week2-神经网络的训练方法1. 神经网络的编译和训练1.1 TensorFlow实现1.2 损失函数和代价函数的数学公式 2. 其他的激活函数2.1 Sigmoid激活函数的替代方案2.2 如何选择激活函数2.3 为什么需要激活函数 3. 多分类问题和Soft…

无需繁琐编程 开启高效数据分析之旅!

不学编程做R统计分析:图形界面R Commander官方手册 R Commander是 R 的图形用户界面,不需要键入命令就可通过熟悉的菜单和对话框来访问 R 统计软件。 R 和 R Commander 均可免费安装于所有常见的操作系统——Windows、Mac OS X 和 Linux/UNIX。 本书作…

学习spring、springmvc、mybatis、ssm所有可能用到的依赖总结,父工程pom文件依赖,<packaging>pom</packaging>

1、父工程pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/PO…

Linux中的网络时间服务器

本章主要介绍网络时间的服务器 使用chrony配置时间服务器配置chrony客户端服务器同步时间 1.1 时间同步的重要性 一些服务对时间要求非常严格&#xff0c;例如如图所示的由三台服务器搭建的ceph集群 这三台服务器的时间必须保持一致&#xff0c;如果不一致&#xff0c;就会显…

[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training

文章目录 一、完整代码二、论文解读2.1 GPT架构2.2 GPT的训练方式Unsupervised pre_trainingSupervised fine_training 三、过程实现3.1 导包3.2 数据处理3.3 模型构建3.4 模型配置 四、整体总结 论文&#xff1a;Improving Language Understanding by Generative Pre-Training…

一对一聊天

服务端 package 一对一用户; import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util…

GateWay网关介绍以及整合knife4j聚合所有服务的接口文档

为什么使用网关&#xff1f; 因为多个微服务的端口不同&#xff0c;前端调用不方便&#xff0c;使用网关可以统一接收处理前端的请求&#xff0c;同时方便接口的集中处理&#xff0c;比如鉴权、聚合接口文档、限流等等.. 这里使用Knife4j文档工具来实现接口文档&#xff1a;K…

ArcMap中构建金字塔详解

1.金字塔 1.1 定义 金字塔可用于改善性能。它们是原始栅格数据集的缩减采样版本&#xff0c;可包含多个缩减采样图层。金字塔的各个连续图层均以 2:1 的比例进行缩减采样。如下图所示。从金字塔的底层开始每四个相邻的像素经过重采样生成一个新的像素&#xff0c;依此重复进行…

C#winform上下班打卡系统Demo

C# winform上下班打卡系统Demo 系统效果如图所示 7个label控件(lblUsername、lblLoggedInEmployeeId、lab_IP、lblCheckOutTime、lblCheckInTime、lab_starttime、lab_endtime)、3个按钮、1个dataGridView控件、2个groupBox控件 C#代码实现 using System; using System.Dat…

【分布式微服务专题】从单体到分布式(二、SpringCloud整合Nacos)

目录 前言阅读对象阅读导航前置知识笔记正文一、下载安装二、项目整合2.1 服务注册与发现2.2 动态配置管理 三、其他实验四、服务之间的调用 学习总结感谢 前言 本篇笔记主要是记录我整合Nacos项目进来的过程。以实现服务注册发现&#xff0c;以及分布式配置管理。关于Nacos&a…

友思特分享 | Neuro-T:零代码自动深度学习训练平台

工业自动化、智能化浪潮涌进&#xff0c;视觉技术在其中扮演了至关重要的角色。在汽车、制造业、医药、芯片、食品等行业&#xff0c;基于视觉技术实现的缺陷检测具有非常大的需求。对于传统检测方法&#xff0c;目视检查方法能够有效检测非标、具有挑战性的缺陷&#xff0c;传…

在线教育小程序如何一键生成App

在线教育行业是指通过互联网平台提供的各种教育和培训服务。这不仅包括传统的课程学习&#xff0c;还涵盖了一系列创新的学习模式。例如&#xff0c;同步在线课程允许学生和教师在同一时间在线&#xff0c;通过实时的视频和聊天工具进行互动。而异步在线课程则为学生提供了更大…

2023年5个自动化EDA库推荐

EDA或探索性数据分析是一项耗时的工作&#xff0c;但是由于EDA是不可避免的&#xff0c;所以Python出现了很多自动化库来减少执行分析所需的时间。EDA的主要目标不是制作花哨的图形或创建彩色的图形&#xff0c;而是获得对数据集的理解&#xff0c;并获得对变量之间的分布和相关…

【Ambari】Python调用Rest API 获取YARN HA状态信息并发送钉钉告警

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&am…

Java项目学生管理系统一前后端环境搭建

在现代的软件开发中&#xff0c;学生管理系统是一个常见的应用场景。通过学生管理系统&#xff0c;学校能够方便地管理学生的信息、课程安排和成绩等数据。本文将介绍如何使用Java语言搭建一个学生管理系统的前后端环境&#xff0c;并提供一个简单的示例。 1.环境搭建 学生管…

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)

题目 页面显示为文件上传 随便上传一个文件看看 上传一个文本文件显示 上传了一个图片显示 上传包含一句话木马的图片 上传了一个包含php一句话木马的文件&#xff0c;显示如上 换一个写法 上传成功 尝试上传.htaccess&#xff0c;上传失败&#xff0c;用抓包修改文件后缀 …

No suitable driver found for jdbc:mysql://localhost:3306(2023/12/7更新)

有两种情况&#xff1a; 压根没安装下载了但没设为库或方法不对 大多数为第一种情况&#xff1a; 一. 下载jdbc 打开网址选择一个版本进行下载 https://nowjava.com/jar/version/mysql/mysql-connector-java.html 二.安装jdbc 在项目里建一个lib文件夹 在把之前下载的jar文…

【Vulnhub 靶场】【Funbox: GaoKao】【简单】【20210606】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/funbox-gaokao,707/ 靶场下载&#xff1a;https://download.vulnhub.com/funbox/FunboxGaoKao.ova 靶场难度&#xff1a;简单 发布日期&#xff1a;2021年06月06日 文件大小&#xff1a;1.3 GB 靶场作者&#…