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:白

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/228174.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java几种深拷贝方式比较

Java的深度拷贝分为克隆(实现Java的Clone接口)和序列化(实现Java的Serializable接口)两种,由于序列化有不同的方式,下面分析一下每种的注意事项和性能对比。 一、继承Cloneable接口 可以使用Java提供的Clo…

Java基础50题: 21.实现一个方法printArray, 以数组为参数,循环访问数组中的每个元素,打印每个元素的值.

概述 实现一个方法printArray, 以数组为参数,循环访问数组中的每个元素,打印每个元素的值. 代码 public static void printArray(int[] array) {for (int i 0; i < array.length; i) {System.out.println(array[i] " ");}System.out.println();}public static…

class060 拓扑排序的扩展技巧【算法】

class060 拓扑排序的扩展技巧【算法】 算法讲解060【必备】拓扑排序的扩展技巧 2023-12-7 22:23:02 code1 P4017 最大食物链计数 // 最大食物链计数 // a -> b&#xff0c;代表a在食物链中被b捕食 // 给定一个有向无环图&#xff0c;返回 // 这个图中从最初级动物到最顶…

Atlassian Confluence 模板注入代码执行漏洞风险通告

近期&#xff0c;亚信安全CERT通过监控发现&#xff0c;Atlassian 公司发布了一则安全公告&#xff0c;针对 Confluence 数据中心和 Confluence 服务器存在的远程代码执行漏洞&#xff08;CVE-2023-22522&#xff09;进行了修复。该漏洞涉及 Confluence 页面中的模板注入问题&a…

加载类型库/dll 时出错

软件使用DataSnap数据库ERP管理系统&#xff0c;用户更换操作系统&#xff0c;出现“加载类型库/dll 时出错”信息。 通常思路&#xff0c;从大环境查找&#xff0c;怀疑操作系统中的C运行库出现错误&#xff0c;搜索一翻末果。百度搜索也找不到结果。 通过Dll修复大师、全能修…

ArcMap中构建金字塔详解

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

【Lidar】Python实现点云CSF布料滤波算法提取地面点

这两天会持续更新一下Python处理点云数据的教程&#xff0c;大家可以点个关注。今天给大家分享一下点云的经典算法&#xff1a;CSF布料模拟算法。 1 CSF算法简介 CSF算法&#xff0c;全称为Cloth Simulation Filtering&#xff0c;是一种基于欧几里得空间中最小生成树思想的聚类…

什么是网站?

这篇文章是我学习网站开发&#xff0c;阶段性总结出来的。可以帮助你 通俗易懂 地更加深刻理解网站的这个玩意。 一&#xff0c;网站和网页的区别&#xff1f; 网站是由一个个网页组成。我们在浏览器上面看到的每一个页面就是网页&#xff0c;这些 相关的 网页组成一个网站。…

【Selenium+Webmagic】基于JAVA语言实现爬取js渲染后的页面,附有代码

事先声明 笔者最近需要查看一些数据&#xff0c;自己挨个找太麻烦了&#xff0c;于是简单的学了一下爬虫。笔者在这里声明&#xff0c;爬的数据只为学术用&#xff0c;没有其他用途&#xff0c;希望来这篇文章学习的同学能抱有同样的目的。 枪本身不坏&#xff0c;坏的是使用枪…

EOCR-CT电流互感器与SR-CT区别简介

电流互感器CT是&#xff08;Current Transformers&#xff09;的缩写&#xff0c;是将一次测的大电流&#xff0c;按比列变为适合通过测量仪表或保护装置的变换设备。 EOCR外部电流互感器3CT和SR-CT是专为保护大负载的组合使用&#xff0c;电流变比100&#xff1a;5&#xff0…

如何部署自己的服务渲染页面为Pdf文档

前言 相信大家都觉得官方发布的文档生成模块https://docs.mendix.com/appstore/modules/document-generation/很有用&#xff0c;它能把Mendix页面像素级导出到Pdf文件中&#xff0c;这对于归档等业务非常有价值。但部署依赖公有云提供的渲染服务&#xff0c;而中国本土用户对…

常用API(一)

API(全称 Application Programming Interface&#xff1a;应用程序编程接口) 就是别人写好的一些程序&#xff0c;给我们直接拿去调用即可解决问题的。 包 什么是包&#xff1f; 包是用来分门别类的管理各种不同程序的&#xff0c;类似于文件夹&#xff0c;建包有利于程序的管…

python数据分析总结(pandas)

目录 前言 df导入数据 df基本增删改查 数据清洗 ​编辑 索引操作 数据统计 行列操作 ​编辑 df->types 数据格式化 ​编辑 日期数据处理 前言 此篇文章为个人python数据分析学习总结&#xff0c;总结内容大都为表格和结构图方式&#xff0c;仅供参考。 df导入数…

在线教育小程序正在成为教育行业的新生力量

教育数字化转型是目前教育领域的一个热门话题&#xff0c;那么到底什么是教育数字化转型&#xff1f;如何做好教育数字化转型&#xff1f; 教育数字化转型是利用信息技术和数字工具改变和优化教育的过程。主要特征包括技术整合、在线学习、个性化学习、大数据分析、云计算、虚拟…

视频封面提取:精准截图,如何从指定时长中提取某一帧图片

在视频制作和分享过程中&#xff0c;一个有吸引力的封面或截图往往能吸引更多的观众点击观看。有时候要在特定的时间段内从视频中提取一帧作为封面或截图。如果每个视频都手动提取的话就会耗费很长时间&#xff0c;那么如何智化能批量提取呢&#xff1f;现在一起来看下云炫AI智…

VUE2+THREE.JS 按照行动轨迹移动人物模型并相机视角跟随人物

按照行动轨迹移动人物模型并相机视角跟随人物 1. 初始化加载模型2. 开始移动模型3. 人物模型启动4. 暂停模型移动5. 重置模型位置6. 切换区域动画7. 摄像机追踪模型8. 移动模型位置9.动画执行 人物按照上一篇博客所设定的关键点位置&#xff0c;匀速移动 1. 初始化加载模型 //…

选择护眼台灯的标准,符合国家最高标准的护眼台灯推荐

据中国国家卫生健康委员会发布的报告&#xff0c;2020年全国青少年近视率为53.6%&#xff0c;其中&#xff0c;小学生近视率为38.1%&#xff0c;初中生近视率为71.6%&#xff0c;高中生近视率为81.0%。这意味着中国青少年中&#xff0c;大多数人都存在不同程度的近视问题&#…

【Java用法】Lombok中@SneakyThrows注解的使用方法和作用

Lombok中SneakyThrows注解的使用方法和作用 一、SneakyThrows的作用二、SneakyThrows注解原理 一、SneakyThrows的作用 普通Exception类,也就是我们常说的受检异常或者Checked Exception会强制要求抛出它的方法声明throws&#xff0c;调用者必须显示的去处理这个异常。设计的目…

如何使用eXtplorer+cpolar内网穿透搭建个人云存储实现公网访问

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件&#xff0c;是互联网最重要的应用之一&#xff0c;无论是…

Mybatis源码解析2:全局配置

Mybatis源码解析2&#xff1a;全局配置 1.项目结构2. 源码分析2.1.SqlSessionFactoryBuilder#build(java.io.InputStream)2.2 XMLConfigBuilder构造器2.3 解析XMLConfigBuilder#parse2.4 解析配置 XMLConfigBuilder#parseConfiguration 1.项目结构 源码地址&#xff1a; 项目结…