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

C语言(输入printf()函数)

 

printf()的细节操作很多,对于现阶段的朋友来说,主要还是以理解为主。因为很多的确很难用到。

目录

一.转换说明(占位符)

二.printf()转换说明修饰符

1.数字

2.%数字1.数字2

3.整型转换字符补充

4.标记

-符号

+符号

空格符号

#符号

0符号

5.*修饰符

三.转换不匹配(很重要,尽量理解)

四.printf()返回值

五.printf打印较长的字符串

1.分成多个printf()进行打印

2.在字符串中使用反斜杠(\)和Enter键盘组合来断行

3.把字符串分为多个字符串,printf在打印时候会自动把字符串进行连接打印

一.转换说明(占位符)

printf("My favorite number is %d because it is first.\n",num);  //打印字符串,将num变量存储的1替换到 %d 的位置上。这里的%d就是占位符(转换说明),下面我将列出我们能使用到的基本多有转换说明

%a

浮点数十六进制P记数法

%c

单个字符

%d

有符号十进制数

%i

有符号十进制整数(与%d相同)

%e

浮点数,e记数法

%f

浮点数,十进制记数法

%g

根据值的不同,自动选择%f,%e

%o

无符号八进制整数

%p

指针

%s

字符串

%u

无符号十进制整数

%x

无符号十六进制整数

%%

打印%

%zd

sizeof()和strlen的返回类型

这快大家根据打印数据类型选择就好了。我们下面将重点介绍转换说明修饰符

二.printf()转换说明修饰符

printf()的转换说明修饰符是插入在% 字母之间的

1.数字

表示最小字段宽度。如果字段无法容纳待打印的数字或字符串,系统会使用更宽的字段。

首先是%3d,这里a只有1,但3规定了字段为3,所以在最后的打印中1前面补了2个空格。%10s同样的道理,因为hello只有五个字段宽度,所以打印时前面补了5个空格。

然后是%3s,因为hello是5个字段宽度。所以满足3这个最小字段宽度,正常打印就好了。

2.%数字1.数字2

数字1用于表示最小字符宽度(就算上面那个效果)

数字2:

对于%e,%f转换,表示小数点右边数字的位数

对于%g,表示有效数字最大位数

对于%s,表示待打印字符的最大数量

对于整数,表示待打印数字的最小位数

首先是%1.3e和%1.3f,这里我们看到不管是数字计数法还是指数计数法,小数点后都只有三位数。

%1.3g,首先解释下最大位数就算不包括小数点所展示出来的数。所以只显示了1.11只有三个数字。

%1.3s,规定了最多显示三个字符,所以只打印了hel

%1.3d,整数的数字2和数字1功能一样,只不过前者用0填充空缺,后者用空格填充空缺

3.整型转换字符补充

其实这个我们在前面基本也都遇到了,我们先来总体看看

h

基本使用%hd,就是short的占位符

j

表示intmax_t或uintmax_t类型的值。而这些值就定义在stdint.h中。而intmax_t就算long long数据类型别名,uintmax_t就算unsigned long long 的别名,用lld和llud都可以。

ll

lld表示long long int

t

表示ptrdiff_t类型的值。Ptrdiff_t是两个指针差值的类型

z

表示size_t类型的值。就算sizeof和strlen类型的返回值。

除了t的其他的我们都讲过了,所以这里重点介绍指针差值。其实看到图你基本就能看出来其实用%d也可以,只不过会警报。所以如果你实在搞不懂该用哪种返回类型,直接用%d就行,如果结果不对就%ld。

4.标记

标记一共有五种。分别为-,+,空格,#,0;

-

待打印项左对齐(从字段的左侧开始打印该项)

+

符号值若为正,则在值前面显示加号。若为负,则在值前面显示减号

空格

符号值若为正,则在值前面显示空格。若为负,则在值前面显示减号并覆盖空格

#

把结果转换为另一种心事。%0,则以0开始。如以%下,则以0x先开始。对于浮点数类型,#保证了即使后面没有任何数字,也打印一个小数点字符。对于%g,#防止结果后面的0被删除。

0

对于数值,用前导0代替空格填充字段宽度。如果已经出现-标记,则忽略0标记

首先

-符号

+符号

和直接使用%d的区别在于,整数前面会加个+号

空格符号

红下划线那里有一个前导零

#符号

这里重点讲解下%.0f和%.0f。为了表现对于浮点数类型,#保证了即使后面没有任何数字,也打印一个小数点字符。如果不加.0这个修饰符就看不出效果,它会自动算出小数点后6位(如下图所示)

0符号

首先来看红下划线,%10d里面一共有2个修饰符,一个0,另一个10(最小字段宽度),所以前导都用0填充,这个效果用%.10d是一样的

黄色下划线部分,有三个修饰符,-(左对齐),0(因为-的存在自动省略),10(最小字段宽度)

5.*修饰符

用变量值代替*号部分

可以看到

printf("%*d",number,rv)我们用number变量代替*位置,rv代替d位置

我们这里输入了5,在因为是整数类,所以会打印5位数,4个空格加数字1

三.转换不匹配(很重要,尽量理解)

第一行:num变量对应转换说明 %hd 和 %hu的输出都是336,因为%hd对应short和unsigned short它们内部存储的位是一样的,且都是正好,所以不会出现转化不匹配的情况(这就是一个正常情况)

第二行:mnum变量对应的转换说明%hd 有符号的short,所以-336正常,而%hu为无符号的short,又遇到赋值,这里就会出现打印65200数值情况,并非期望的336。这事由于short int类型的值在外面的参考系统中的表示方式所致。

首先,short int的大小是2字节,其次,系统使用二进制补码来表示有符号整数(这个外面在后面会进行讲解的)。这种情况下,0~32767表示正数部分,32768~65535则用于表示负数,其中,65535表示-1,65534为-2,所以-336就为65200.

这里需要知道,当要解释为有符号int,65200代表-336.被解释为无符号int时,65200则就表示65200

第三行:short int时二字节,char是1字节。当printf()使用%c打印336是,它只会查看存储336的2字节中的后1字节。相当于”以256为模“,即该数字除以256后取其玉树,336%256为80,对应P

最后一行和第三行原理一样,%d用4个字节,%hd用2个字节,%c用一个字节

这里我们在来看一个例子,

在使用%le,打印时,会取8个字节的空间,而long只占4个字节空间,这就导致它会取后面四个字符的其他空间值,最终形成的一个乱值。

四.printf()返回值

它将返回打印字符的个数。如果有输出错误,printf()则返回一个负值

五.printf打印较长的字符串

在日常当然遇到打印较长字符串的时候,一半有三种解决。这边我们以打印字符串"Today is the New Year. I wish you good health, career and study in the new year"为例。

1.分成多个printf()进行打印

2.在字符串中使用反斜杠(\)和Enter键盘组合来断行

3.把字符串分为多个字符串,printf在打印时候会自动把字符串进行连接打印


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

 

相关文章:

C语言(输入printf()函数)

printf()的细节操作很多,对于现阶段的朋友来说,主要还是以理解为主。因为很多的确很难用到。 目录 一.转换说明(占位符) 二.printf()转换说明修饰符 1.数字 2.%数字1.数字2 3.整型转换字符补充 4.标记 -符号 符号 空格符…...

Zabbix 构建监控告警平台(四)

Zabbix ActionZabbix Macros1.Zabbix Action 1.1动作Action简介 当某个触发器状态发生改变(如Problem、OK),可以采取相应的动作,如: 执行远程命令 邮件,短信,微信告警,电话 1.2告警实验简介 1. 创建告警media type&…...

2004-2019年285个地级市实际GDP与名义GDP

2004-2019年285个地级市实际GDP和名义GDP 1、时间:2004-2019年 2、范围:285个地级市 3、说明:GDP平减指数采用地级市所在省份当年平减指数 4、代码: "gen rgdp gdp if year 2003 gen rgdp gdp if year 2003" re…...

Node.js笔记-Express(基于Node.js的web开发框架)

目录 Express概述 Express安装 基本使用 创建服务器 编写请求接口 接收请求参数 获取路径参数(/login/2) 静态资源托管-express.static(内置中间件) 什么是静态资源托管? express.static() 应用举例 托管多个静态资源 挂载路径前缀…...

力扣sql简单篇练习(十五)

力扣sql简单篇练习(十五) 1 直线上的最近距离 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT min(abs(p1.x-p2.x)) shortest FROM point p1 INNER JOIN point p2 ON p1.x <>p2.x1.3 运行截图 2 只出现一次的最大数字 2.1 题目内容 2…...

浅谈动态代理

什么是动态代理&#xff1f;以下为个人理解:动态代理就是在程序运行的期间&#xff0c;动态地针对对象的方法进行增强操作。并且这个动作的执行者已经不是"this"对象了&#xff0c;而是我们创建的代理对象&#xff0c;这个代理对象就是类似中间人的角色&#xff0c;帮…...

Idea超好用的管理工具ToolBox(附带idea工具)

文章目录为什么要用ToolBox总结idea管理安装、更新、卸载寻找ide配置、根路径idea使用准备工作配置为什么要用ToolBox 快速轻松地更新,轻松管理您的 JetBrains 工具 安装自动更新同时更新插件和 IDE回滚和降级通过下载补丁或一组补丁而不是整个包&#xff0c;节省维护 IDE 的…...

Spring 中 ApplicationContext 和 BeanFactory 的区别

文章目录类图包目录不同国际化强大的事件机制&#xff08;Event&#xff09;底层资源的访问延迟加载常用容器类图 包目录不同 spring-beans.jar 中 org.springframework.beans.factory.BeanFactoryspring-context.jar 中 org.springframework.context.ApplicationContext 国际…...

情人节有哪些数码好物值得送礼?情人节实用性强的数码好物推荐

转瞬间&#xff0c;情人节快到了&#xff0c;大家还在为送什么礼物而烦恼&#xff1f;在这个以科技为主的时代&#xff0c;人们正在享受着科技带来的便利&#xff0c;其中&#xff0c;数码产品也成为了日常生活中必不可少的存在。接下来&#xff0c;我来给大家推荐几款比较实用…...

java中flatMap用法

java中map是把集合每个元素重新映射&#xff0c;元素个数不变&#xff0c;但是元素值发生了变化。而flatMap从字面上来说是压平这个映射&#xff0c;实际作用就是将每个元素进行一个一对多的拆分&#xff0c;细分成更小的单元&#xff0c;返回一个新的Stream流&#xff0c;新的…...

【MySQL Shell】8.9.2 InnoDB ClusterSet 集群中的不一致事务集(GTID集)

AdminAPI 的 clusterSet.status() 命令警告您&#xff0c;如果 InnoDB 集群的 GTID 集与 InnoDB ClusterSet 中主集群上的 GTID 集不一致。与 InnoDB ClusterSet 中的其他集群相比&#xff0c;处于此状态的集群具有额外的事务&#xff0c;并且具有全局状态 OK_NOT_CONSISTENT 。…...

logstash毫秒时间戳转日期以及使用业务日志时间戳替换原始@timestamp

文章目录问题解决方式参考问题 在使用Kibana观察日志排查问题时发现存在很多组的timestamp 数据一样&#xff0c;如下所示 详细观察内部数据发现其中日志数据有一个timestamp字段保存的是业务日志的毫秒级时间戳&#xff0c;经过和timestamp数据对比发现二者的时间不匹配。经…...

【C语言】qsort——回调函数

目录 1.回调函数 2.qsort函数 //整形数组排序 //结构体排序 3.模拟实现qsort //整型数组排序 //结构体排序 1.回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另一个函数&#xff0c;当这个指针被用来…...

8年软件测试工程师经验感悟

不知不觉在软件测试行业&#xff0c;野蛮生长了8年之久。这一路上拥有了非常多的感受。有迷茫&#xff0c;有踩过坑&#xff0c;有付出有收获&#xff0c; 有坚持&#xff01; 我一直都在软件测试行业奋战&#xff0c; 毕业时一起入职的好友已经公司内部转岗&#xff0c;去选择…...

腾讯云安全组配置参考版

官方文档参考: 云服务器 安全组应用案例-操作指南-文档中心-腾讯云 新建安全组时&#xff0c;您可以选择腾讯云为您提供的两种安全组模板&#xff1a; 放通全部端口模板&#xff1a;将会放通所有出入站流量。放通常用端口模板&#xff1a;将会放通 TCP 22端口&#xff08;Lin…...

代码覆盖率工具OpenCppCoverage在Windows上的使用

OpenCppCoverage是用在Windows C上的开源的代码覆盖率工具&#xff0c;源码地址为https://github.com/OpenCppCoverage/OpenCppCoverage &#xff0c;最新发布版本为0.9.9.0&#xff0c;License为GPL-3.0。 从https://github.com/OpenCppCoverage/OpenCppCoverage/releases 下载…...

代码随想录算法训练营第24天25天|● 77. 组合● 216.组合总和III ● 17.电话号码的字母组合

77组合 看完题后的思路 void f&#xff08;数组&#xff0c;startIndex&#xff09;递归终止 if&#xff08;startIndex数组长度||path.sizek&#xff09;{ if(path.sizek){ 加入} }递归 for&#xff08;&#xff1b;startIndex<num.size&#xff1b;startIndex&#xff0…...

Python_pytorch

python_pytorch 小土堆pytotch学习视频链接 from的是一个个的包&#xff08;package) import 的是一个个的py文件(file.py) 所使用的一般是文件中的类(.class) 第一步实例化所使用的类,然后调用类中的方法&#xff08;def) Dataset 数据集处理 import os from PIL impo…...

【Java|golang】2335. 装满杯子需要的最短总时长

现有一台饮水机&#xff0c;可以制备冷水、温水和热水。每秒钟&#xff0c;可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。 给你一个下标从 0 开始、长度为 3 的整数数组 amount &#xff0c;其中 amount[0]、amount[1] 和 amount[2] 分别表示需要装满冷水、温水和热水的…...

shell编程之sed

文章目录八、shell编程之sed8.1 工作原理8.2 sed基本语法8.3 模式空间中的编辑操作8.3.1 地址定界8.3.2 常用编辑命令8.4 sed扩展八、shell编程之sed 8.1 工作原理 sed是一种流编辑器&#xff0c;它是文本处理中非常有用的工具&#xff0c;能够完美的配合正则表达式使用&…...

安全寒假作业nginx反向代理+负载均衡上传webshell重难点+apache漏洞

1.应用场景 负载均衡作为现今解决web应用承载大流量访问问题的一种方案&#xff0c;在真实环境中得到广泛的部署。实现负载均衡的方式有很多种&#xff0c;比如 DNS 方式、HTTP 重定向方式、IP 负载均衡方式、反向代理方式等等。 比如基于dns的负载均衡&#xff1a; 当然还有…...

day35|01背包问题、416. 分割等和子集

01背包问题 有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 例&#xff1a;背包最大重量为4。 物品为&#xff1a; 重量价值物品0115物品…...

Linux内核启动(3,0.11版本)内核启动完成与进入内核main函数

这一部分是在讲解head.s代码&#xff0c;这个代码与bootsect.s和setup.s在同一目录下&#xff0c;但是head.s程序在被编译生成目标文件后会与内核其他程序一起被链接成system模块&#xff0c;位于system模块的最前面开始部分。system模块将被放置在磁盘上setup模块之后开始的扇…...

【2023】Prometheus-Alertmanager高可用集群

本次实验准备了三个节点&#xff0c;分别为laert-01~03 目录1.安装Alertmanager2.配置启动文件3.验证集群4.关于集群的配置项1.安装Alertmanager 这部分内容在三个节点上都要执行 下载安装包&#xff0c;将安装包解压至/data目录下 wget https://github.com/prometheus/aler…...

2023-2-11 刷题情况

最短路计数 题目描述 给出一个 NNN 个顶点 MMM 条边的无向无权图&#xff0c;顶点编号为 1∼N1\sim N1∼N。问从顶点 111 开始&#xff0c;到其他每个点的最短路有几条。 输入格式 第一行包含 222 个正整数 N,MN,MN,M&#xff0c;为图的顶点数与边数。 接下来 MMM 行&…...

2019_41 考研408

2019年(单链表)41.(13分)设线性表采用带头结点的单链表保存&#xff0c;链表中的结点定义如下:typedef struct node {int data;struct node* next;}NODE;请设计一个空间复杂度为O(1)且时间上尽可能高效的算法&#xff0c;重新排列L中的各结点&#xff0c;得到线性表L(q,a,,a,an…...

Linux账号与用户组

目录 用户标识符&#xff1a;UID与GID 用户账号 /etc/passwd文件结构 1、账号名称 2、密码 3、UID 4、GID 5、用户信息说明栏 6、家目录 7、shell /etc/shadow文件结构 1、账号名称 2、密码 3、最近修改密码的日期 4、密码不可被修改的天数&#xff08;与第三字…...

有趣的Hack-A-Sat黑掉卫星挑战赛——定位卫星Jackson

国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加&#xff0c;太空已经成为国家赖以生存与发展的命脉之一&#xff0c;凝聚着巨大的国家利益&#xff0c;太空安全的重要性日益凸显[1]。而在信息化时代&#xff0c;太空安…...

JAVA集合专题3 —— vector + LinkedList + Set

目录vector的特点LinkedList底层结构模拟双向链表比较ArrayList和LinkedListSet接口基本介绍Set接口的遍历方式Set接口实现类对象的特点Set接口实现类HashSet模拟HashSet/HashMap的底层结构vector的特点 Vector底层是一个对象数组Vector是线程同步的&#xff0c;即线程安全的&…...

Scout:一款功能强大的轻量级URL模糊测试与爬取工具

关于Scout Scout是一款功能强大的轻量级URL模糊测试与爬取工具&#xff0c;可以帮助广大研究人员进行URL模糊测试&#xff0c;并爬取目标Web服务器中难以扫描发现的VHSOT、文件和目录等资源。 项目中包含了一个完整的字典文件&#xff0c;并尽可能地提供了更多的便携性&#…...

中国旅游预订网站的建设始于哪一年/关键词app下载

本文同步自我得博客&#xff1a;http://www.joeray61.com 简介 WebRTC is a new front in the long war for an open and unencumbered web.这句话是JavaScript之父Brendan Eich对于WebRTC的评价&#xff0c;大致意思是『WebRTC是争取开放和无阻碍Web的漫长战争中一条新战线』。…...

用网站做平台有哪些/广州市最新消息

并发简史 在早期不包含操作系统的计算机中&#xff0c;程序都是单一的串行程序&#xff0c;从头至尾只能执行一个程序&#xff0c;并且这个程序访问这个计算机的所有资源。然而&#xff0c;随着技术的发展&#xff0c;操作系统出现了。它使得计算机程序有了进程&#xff0c;线…...

wap网站建设学什么/谷歌seo详细教学

栈和堆 大家都知道&#xff0c;JS中的数据类型包括两种&#xff1a;简单数据类型&#xff08;String、Number、Boolean、undefined、null&#xff09;和复杂数据类型&#xff08;object&#xff09;。 在内存中分为栈区&#xff08;stack&#xff09;和堆区&#xff08;heap&am…...

做电影网站如何规避版权/方象科技服务案例

先膜拜一波神仙yww 给定一个矩阵(没有任何特殊性质)&#xff0c;如何求它的特征多项式&#xff1f; 算法一 直接把\(\lambda\)代入\((n1)\)个点值&#xff0c;求完行列式之后插值即可。 时间复杂度\(O(n^4)\) 算法二 下面介绍一个更快的做法。定义 对于矩阵\(\bm A,\bm B\), 若…...

宝鸡网站建设天伟网络/百度推广登录入口下载

Rsync文件同步的核心算法 文章出处:http://coolshell.cn/articles/7425.html#more-7425 rsync是unix/linux下同步文件的一个高效算法&#xff0c;它能同步更新两处计算机的文件与目录&#xff0c;并适当利用查找文件中的不同块以减少数据传输。rsync中一项与其他大部分类似程序…...

网站设计做微信发现界面/网站域名服务器查询

random库是使用随机数的Python标准库 从概率论角度来说&#xff0c;随机数是随机产生的数据&#xff08;比如抛硬币&#xff09;&#xff0c;但时计算机是不可能产生随机值&#xff0c;真正的随机数也是在特定条件下产生的确定值&#xff0c;只不过这些条件我们没有理解&#x…...