【C语言】史上最全printf()和scanf()格式说明

1.printf()函数的输出格式详细说明

表1 格式说明符及输出效果

格式说明符 

输出效果

%c 

一个字符

%d

有符号十进制整数

%f

浮点数,十进制记数法

%e

浮点数,e记数法

%E 

浮点数,E记数法

%g

根据数值不同自动选择%f或%e,%e格式在指数 < -4 或 >= 精度时使用

%G 

根据数值不同自动选择%f或%E,%E格式在指数 < -4 或 >= 精度时使用

%i

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

%o 

无符号八进制整数

%p 

指针

%s 

字符串

%u

无符号十进制整数

%x 

使用十六进制数字0~f的无符号十六进制整数

%X 

使用十六进制数字0~F的无符号十六进制整数

%%

输出一个百分号 

        此外,在控制字符串中,我们还可以在%和格式字符之间插入修饰符,对基本的格式说明加以修改。在表2和表3中,列举了可以插入的修符。

表2 printf( )的修饰符

修饰符

 意义

标志 

5种标志(-、+、空格、#、0)将在表3中描述。可以使用零个或者多个标志。示例: "%-10d"

digit(s) 

字段宽度的最小值。

如果字段宽度不够,则左补空格。

如果该字段不能容纳要输出的数或者字符串,系统就会使用更宽的字段。示例:"%4d"

.digit(s)

精度。

对于%e、%E、%f格式,是将要在小数点右边输出的数字位数。

对于%g和%G格式,是有效数字的最大位数。

对于%s格式,是将要输出字符的最大数目。

对于整数格式, 是将要输出数字的最小位数;

如果必要,要使用前导零来达到这个位数。只使用“.”表示其 后跟随一个零,所以%.f与%.0f相同。

示例:

"%5.2f"为输出一个浮点数,其宽度为5个字符,小数点后有2个数字。

"%5.3s"为输出一个字符串,其宽度为5个字符,但只取字符串中左端3个字符。这3个字符输出在5列的右侧,左补空格。

和整数格式说明符一起使用,表示一个short int或unsigned short int类型数值。

示例: "%hu"、"%hx"、"%6.4hd"

和整数格式说明符一起使用,表示一个long int或unsigned long int类型数值。示例: "%ld"、"%8lu"

L

 和浮点数格式说明符一起使用,表示一个long double类型数值。示例:"%Lf"、"%10.4Le"

表3 printf()的标志

标志 

意义

左对齐。也就是说,将输出的数据置于字段的左侧开始处 。如果字段宽度不够,则左补空格。

示例:"%-20s"

对有符号数,若为正数,则显示加号;若为负数,则显示减号 示例:"%+6.2f"

(空格)

对有符号数,若为正数,则显示时带前导空格(但不显示正号);

若为负,则带减号符号,-标志会覆盖空格标志 示例:"%6.2f"

使用格式说明的可选形式。

若为% o格式,则以0开始;

若为%x或%X格式,则以0x或0X 开始。对于所有的浮点数形式,#保证了即使不跟任何数字,也输出一个小数点字符。对 于%g和%G格式,它防止尾随零被删除 

示例:"%#o"、"%#8.0f"、"%+#10.3E"

对于所有的数字格式,用前导零填充字符宽度。如果出现了一标志或指定了精度(对于整数) 则忽略该标志 

示例:"%010d"、"%08.3f"

2. scanf( )函数的输入格式详细说明

        scanf( )函数的功能是:从键盘读取输入的数据。它是printf( )函数的逆操作。和printf( )函数一样,scanf( )函数也用到了控制字符串和参数列表,但是scanf()在参数列表里使用的是指向变量的指针,如表4和表5所示。

表4 scanf( )函数的格式说明符

格式说明符 

输入数据

%c 

读入一个字符

%d 

读入一个有符号的十进制整数

%f、%e、%g 

读入一个浮点数

%F、%E、%G 

读入一个浮点数

%i 

读入一个有符号的十进制整数(与%d相同)

%o

读入一个有符号的八进制整数

%p

读入一个指针

%s 

读入一个字符串,输入内容以第一个非空格字符作为开始,直到下一个空格字符之 间的全部字符

%u

读入一个无符号的十进制整数

%x、%X

读入一个有符号的十六进制整数

表5 scanf()函数的格式修饰符

修饰符 

意义

本输入项读入后略去。示例:scanf("%2d%*3d%2d",&a,&b);输入1234567↓,则系统将 12赋值给a变量,345略去,67赋值给b变量

digit(s)

最大字段宽度。在达到最大字段宽度或遇到第一个空格字符时停止对输入项的读取。示 例:"%10s"

用于输入short int类型整数(如"%hd,%ho,%hx")

l

用于输入long int类型整数(如"%ld,%lo,%lx")以及double类型实数(如"%lf,%le")

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

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

相关文章

后端学习笔记——后端细碎知识点(每天更新......)

细碎知识点 主要是go后端&#xff0c;也会设计到python、java的知识&#xff0c;懒得分类整理&#xff0c;所以都写在一篇文章里面了&#xff0c;方便自己查看笔记。 context.BindJSON获取POST请求中的json数据gin.H封装了生成json的方式 common.ReturnJSONSuccess(c, gin.H{&…

【鸿蒙】大模型对话应用(一):大模型接口对接与调试

Demo介绍 本demo对接阿里云和百度的大模型API&#xff0c;实现一个简单的对话应用。 DecEco Studio版本&#xff1a;DevEco Studio 3.1.1 Release HarmonyOS API版本&#xff1a;API9 关键点&#xff1a;ArkTS、ArkUI、UIAbility、网络http请求、列表布局 官方接口文档 此…

怎么做深拷贝?

深拷贝是指在拷贝对象时&#xff0c;不仅拷贝了对象本身&#xff0c;还拷贝了对象内部所有的嵌套对象&#xff0c;确保拷贝后的对象与原始对象完全独立&#xff0c;互不影响。在 JavaScript 中&#xff0c;可以通过以下方法来实现深拷贝&#xff1a; 使用 JSON 序列化和反序列化…

JSON详解-使用示例

JSON 概述&#xff1a;JSON全称 JavaScript Object Notation&#xff0c;是一种轻量级的数据交换格式、是一种纯文本。JSON相对于XML来说读写的速度更快。作用&#xff1a; JSON 是用于存储和传输数据的格式JSON 通常用于服务端向网页传递数据 语法规则 数据为 键/值 对&#…

vue3使用vue-diff插件实现文本对比

前面介绍过vue3通过monaco-editor实现文本对比功能 但因为业务需要自定义左右两侧文本的底色及高亮颜色&#xff0c;考虑换一个插件&#xff1a;vue-diff 1、下载插件&#xff1a; npm i vue-diff1.2.4 2、main.js中引入并注册插件&#xff1a; // Diff对比 import VueDiff f…

ZYNQ AC7020C的“点LED”实验

一、创建 Vivado 工程 1、启动 Vivado 2、在 Vivado 开发环境里点击“Create New Project”&#xff0c;创建一个新的工程 3、弹出一个建立新工程的向导&#xff0c;点击“Next” 4、在弹出的对话框中输入工程名和工程存放的目录。需要注意工程路径“Project location”不能有…

Zookeeper3.5.7基础学习

文章目录 一、Zookeeper入门1、概述2、特点3、数据结构4、应用场景 二、Zookeeper 安装部署1、本地模式安装1.1 基础操作1.2 配置参数解读 2、集群部署2.1 集群安装2.2 选举机制(面试重点)2.3 ZK 集群启动停止脚本 三、ZK客户端相关操作1、客户端命令行操作1.1 命令行语法1.2 z…

【第七在线】数字化转型:智能商品计划管理的核心要素

随着科技的快速发展&#xff0c;数字化转型已经成为企业适应市场变化、提高运营效率的必由之路。尤其在服装行业&#xff0c;快速的市场反应和精准的供应链管理显得尤为重要。其中&#xff0c;智能商品计划管理作为数字化转型的核心要素&#xff0c;正在重塑整个行业的竞争格局…

【RH850U2A芯片】Reset Vector和Interrupt Vector介绍

目录 前言 正文 1. 什么是Reset Vector 1.1 S32K144芯片的Reset Vector 1.2 RH850芯片的Reset Vector 2. 什么是Interrupt Vector 2.1 S32K144芯片的Interrupt Vector 2.2 RH850芯片的Interrupt Vector 3. Reset Vector等价于Interrupt Vector吗 4. 总结 前言 最近在…

$monitor和$strobe都看的是啥

注&#xff1a;本文来自硅芯思见 在编写测试平时&#xff0c;经常会用到$monitor和$strobe监测某些信号&#xff0c;并且使用格式上与$display比较类似&#xff0c;但是它们之间还是存在差异的&#xff0c;它们在当前仿真时间槽&#xff08;time-slot&#xff09;中被执行的区间…

字符串函数strncpy、strncat、strncmp的功能(3)

目录 引言&#xff1a; 一、strncpy函数介绍&#xff1a; 1.声明&#xff1a; 2.功能&#xff1a; 3.底层代码&#xff1a; 二、strnact函数介绍&#xff1a; 1.声明&#xff1a; 2.功能&#xff1a; 3.底层代码&#xff1a; 三、strncmp函数介绍&#xff1a; 1.声…

常见电源电路(LDO、非隔离拓扑和隔离拓扑结构)

一、常见电路元件和符号 二、DC-DC转换器 DC-DC转换器&#xff1a;即直流-直流转换器&#xff0c;分为三类&#xff1a;①线性调节器&#xff1b;②电容性开关解调器&#xff1b;③电感性开关调节器&#xff1b; 2.1线性稳压器&#xff08;LDO&#xff09; 2.1.1 NMOS LDO…

如何将前后端分离(vue2+SpringBoot)项目部署到腾讯云服务器

如何将前后端分离&#xff08;vue2SpringBoot&#xff09;项目部署到腾讯云服务器 目录 如何将前后端分离&#xff08;vue2SpringBoot&#xff09;项目部署到腾讯云服务器 1、在选中目录地下新建2个文件夹 2、将打包好的前端项目和后端jar包上传到相应的目录下 3、将路径切…

Gin 应用多实例部署session问题、session参数与刷新

文章目录 一、Gin Session 存储的实现方案二、memstore&#xff1a;基于内存的实现2.1 基本使用2.2 关键参数 三、使用redis&#xff1a;多实例部署3.1 使用redis优势3.2 基本使用 四、信息安全的三个核心概念五、Gin Session 参数5.1 参数介绍 六、Session 自动刷新 一、Gin S…

语图奇缘:林浩然与杨凌芸的哲学漫画大冒险

语图奇缘&#xff1a;林浩然与杨凌芸的哲学漫画大冒险 Language Odyssey: The Philosophical Comic Adventure of Lin Haoran and Yang Lingyun 在一个充满逻辑谜题和言语陷阱的城市——逻言市&#xff0c;住着两位热衷于探索语言奥秘的年轻人&#xff0c;林浩然和杨凌芸。林浩…

Qt的绘制是如何发生的

QEvent::WindowDeactivate 当用户鼠标在应用之外时&#xff0c;会触发QEvent::WindowDeactivate事件&#xff0c; Qt5Widgetsd.dll!QApplication::setActiveWindow(QWidget * act) Line 2072 C Qt5Widgetsd.dll!QApplicationPrivate::notifyActiveWindowChange(QWindo…

一篇文章带你了解C++中隐含的this指针

文章目录 一、this指针的引出二、this指针的特性【面试题】 一、this指针的引出 我们先来定义一个日期类Date&#xff0c;下面这段代码执行的结果是什么呢&#xff1f; class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}v…

2024新版68套Axure RP大数据可视化大屏模板及通用组件+PSD源文件

Axure RP数据可视化大屏模板及通用组件库2024新版重新制作了这套新的数据可视化大屏模板及通用组件库V2版。新版本相比于V1版内容更加丰富和全面&#xff0c;但依然秉承“敏捷易用”的制作理念&#xff0c;这套作品也同样延续着我们对细节的完美追求&#xff0c;整个设计制作过…

【PythonRS】Rasterio库安装+基础函数使用教程

Rasterio是一个Python库&#xff0c;专门用于栅格数据的读写操作。它支持多种栅格数据格式&#xff0c;如GeoTIFF、ENVI和HDF5&#xff0c;为处理和分析栅格数据提供了强大的工具。RasterIO适用于各种栅格数据应用&#xff0c;如卫星遥感、地图制作等。通过RasterIO&#xff0c…

Two-factor authentication (2FA) is required for your GitHub account解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…