C语言——(printf和scanf介绍)

一.printf 

1.基本用法 

printf()的作用是将参数文本输出的屏幕。如下; 

2.占位符

printf()可以在输出文本中指定占位符 ,“占位符”,也就是这个位置可以用其他值代入。  

如:

那么图中的%d,就是占位符,18就是代入的值。占位符第一个字符都是%,第二个字符表示占位符的类型,图中%d为整型,所以输入是整数。不同的占位符,就要输入对应的值。 

printf()也可以使用多个占位符 

图中有2个占位符为%s,%d。那么这2个占位符就对应了后边的2个参数,%s为字符串,%d为整型,占位符与参数是一 一对应的。

3.占位符列举

• %a :⼗六进制浮点数,字⺟输出为⼩写。

• %A :⼗六进制浮点数,字⺟输出为⼤写。

• %c :字符。 • %d :⼗进制整数。

• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。

• %E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。

• %i :整数,基本等同于 %d 。

• %f :⼩数(包含 float 类型和 double 类型)。

• %g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e 为⼩写。

• %G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。

• %hd :⼗进制 short int 类型。

• %ho :⼋进制 short int 类型。

• %hx :⼗六进制 short int 类型。

• %hu :unsigned short int 类型。

• %ld :⼗进制 long int 类型。

• %lo :⼋进制 long int 类型。

• %lx :⼗六进制 long int 类型。

• %lu :unsigned long int 类型。

• %lld :⼗进制 long long int 类型。

• %llo :⼋进制 long long int 类型。

• %llx :⼗六进制 long long int 类型。

• %llu :unsigned long long int 类型。

• %Le :科学计数法表⽰的 long double 类型浮点数。

• %Lf :long double 类型浮点数。

• %n :已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中。

• %o :⼋进制整数。

• %p :指针。

• %s :字符串。

• %u :⽆符号整数(unsigned int)。

• %x :⼗六进制整数。

• %zd : size_t 类型。

• %% :输出⼀个百分号。

4.输出格式

printf()可以定制占位符的输出格式 

1.限定宽度 

printf()限定宽度是最小宽度,如下 

图中限度最小宽度为%6d,所以宽度最小为6,那么123不满足,就会在值的前面添加空格补齐,输出的值默认是右对齐,那么如果想左对齐,只需要在%后面加入(-)负号,如%-6d 。  

如果参数超过了限定宽度是没有问题的,因为限定宽度是最小宽度,如下图

如下图,%12f表示输出的浮点数最少要占12位,那么精度默认小数点后为6位,剩余的就会在1的前边补齐。 

2.限定小数位

输出小数的时候,我们可以根据自己的想法来限定小数位。那么下图中我们想让它输出小数点后2位只需要在%后面加入小数点以及限定的位数即可。

那么会不会四舍五入呢,其实是会的如下图

3.限定宽度和限定小数的结合使用 

这2个是可以结合使用的如下图,最小宽度为10,小数点后限制3位,剩余的右边补齐

我们还可以更加灵活一点,最小宽度,限定小数都是可以用*号来代替的,通过printf()的参数传入,最小宽度为10,限定小数位3,同等与%10.3f 。如下: 

4.输出部分的字符 

在%号后面加入小数点以及限定的位数不仅可以用在浮点数,也可以用在字符串。如下,我们限定的位数为5位,所以输出为”zhang“ 。 

小结:大家可以自行灵活的去实践

二.scanf

那么我们有了printf()输出,当然也有scanf()输入了。

1.基本用法

用于读取用户的键盘输入 ,当程序运行到该语句,会停下来,等待用户在键盘的输入,用户输入完,按下回车键,scanf()就会处理用户的输入,并存入变量,定义的头文件为stdio.h  

scanf()与printf()一样都是有占位符的,如下图, %d 就是⼀个占位符, % 是占位符的标志, d 表⽰整数。第⼆个参数 &i 表示,将用户从键盘输⼊的整数存⼊变量 i ,变量前边必须加入&运算符,因为scanf()传递的是地址,将变量i的地址指向用户的输入的值。

例子,那么前边2个%d就表示用户输入的是整数,后边2个%f表示用户输入浮点数。在这里因为我使用的是vs2022,所以scanf( )要加入下划线s ,或者包含,#define_CRT_SECURE_NO_WARNINGS ,这样才不会报错。 

那么scanf()处理数值占位符,会自动过滤空白字符,包括空格、制表符、换行符等。

什么意思呢?如下。键盘等待着我输入,我可以输入一行然后回车再接着输入下一行。

 

注意点下图:  

图中,读取是对应匹配的,如%d占位符,那么读取到整数18就结束了,然后%f占位符从小数点位开始读取就为0.3,然后小数点默认精度为6位,0.300000 , 所以输出18 0.300000。

2.scanf返回值

scanf返回值,返回的是一个整数,表示成功读取的数量个数 。

如图,成功读取了a,b,c。返回值为3 

如果没有读取任何的数,或者说读取失败就会返回0,在vs环境中按键Ctrl+z就是提前结束。 

如果在读取之前,发生了读取错误,会返回常量EOF(-1)

3.占位符列表

• %c :字符。

• %d :整数。

• %f : float 类型浮点数。

• %lf : double 类型浮点数。

• %Lf : long double 类型浮点数。

• %s :字符串。

• %[] :在⽅括号中指定⼀组匹配的字符(⽐如 %[0-9] ),遇到不在集合之中的字符,匹配将会 停⽌。

值得注意的是,除了%c以外,其他的占位符都会自动忽略起首的空白字符。如,%d可以忽略掉起首的空白字符

但是,如果是%c就不可以 ,因为在读取的时候空格也是字符。

如果要跳过空白字符,可以在%c前边加一个空格

 4.赋值忽略符

如我们输入日期

 但是,当我们不符合规定输入

scanf()解析数据会失败,为了避免这一情况,scanf()提供了赋值忽略符,为*,只要把*加在任何占位符%后边,该占位符就不会返回值,只对它进行解析然后丢弃,如%*c表示,读取后就丢弃,不用返回。

三.结尾

感谢大家的阅读! ! !

 

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

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

相关文章

竞赛保研 基于深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的视频多目标跟踪实现 …

小魔推行业玩法:生活美容怎么做短视频矩阵?

如今每个实体老板都想让自己生意做的更好,那就需要有更多获取流量的方式,获得大量的同城曝光;在市场内卷的状况下,通过短视频来做门店引流无疑是绝佳的方式,让更多同城的用户知晓自己的门店,这个时候通过小…

HarmonyOS4.0系统性深入开发18公共事件简介

公共事件简介 HarmonyOS通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。 公共事件从系统角度可分为:系统公共事件和自定义公共事件。 系统公共事件:CES内部定义的公共事…

对比学习2024最新SOTA&应用方案分享,附14篇必读论文和代码

同学们发现没有,对比学习在我们的日常工作生活中已经很常见了,比如推荐系统任务,为用户推荐相似的商品或预测用户的购买行为;又比如图像检索,为用户找相似图片或识别不同物体。另外还有语音识别、人脸识别、NLP&#x…

43-函数的声明定义,函数表达式定义,函数的调用,声明提升,参数,形参,实参

1.函数声明定义 function 函数名(){} 2.函数表达式定义 匿名式函数表达式 var 函数名 function(){} 命名式函数表达式 var 函数名 function 函数关键字(){} 3.函数的调用 var fn function f(){alert("aaa");}//函数名()//函数想调用几次…

京东年度数据报告-2023全年度游戏本十大热门品牌销量(销额)榜单

同笔记本市场类似,2023年度游戏本市场的整体销售也呈下滑态势。根据鲸参谋电商数据分析平台的相关数据显示,京东平台上游戏本的年度销量累计超过350万,同比下滑约6%;销售额将近270亿,同比下滑约11%。 鲸参谋综合了京东…

7、防写一个shell 命令解释器

1、代码部分 #include <stdio.h> #include <stdlib.h> #include <string.h>#define MAX_INPUT_LENGTH 100void parse_command(char *command) {// 用于存储解析后的命令和参数char cmd[MAX_INPUT_LENGTH];char args[MAX_INPUT_LENGTH];// 将输入的命令拷贝到…

Java Swing 图书借阅系统 窗体项目 期末课程设计 窗体设计

视频教程&#xff1a; 【课程设计】图书借阅系统 功能描述&#xff1a; 图书管理系统有三个角色&#xff0c;系统管理员、图书管理员、借阅者&#xff1b; 系统管理员可以添加借阅用户&#xff1b; ​图书管理员可以添加图书&#xff0c;操作图书借阅和归还&#xff1b; 借…

JDK安装与配置教程来啦

1.从Oracle公司官网下载JDK安装文件。 官网地址为&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/index.html 目前最新版本是JDK21,下面就以JDK21举例。 2.需要登录Oracle账户&#xff0c;没有的注册一下就行了。 3.在确认安装的盘符&#xff08;例…

Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException(数组创建问题)

数组在Java中使用还是比较多的&#xff0c;通过索引去数组中寻值&#xff0c;也可以通过数组索引去赋值 问题描述&#xff1a; 我们在直接使用未被new的数组时就会出现这种情况&#xff0c; 这边简单创建一个运行类 public class a {public static void main(String[] args)…

基于LVGL编写的windows串口工具: LCOM

LCOM: Serial Port Tools based on LVGL (PC Software) 一直以来我都想用LVGL做一个真正意义上的PC软件&#xff0c;来验证或者表达LVGL出色的特性&#xff0c;现在我用LCOM做到了&#xff01; LCOM 是一个基于LVGL编写的串口工具&#xff0c;界面简洁&#xff0c;功能出色&a…

更快更稳的4K响应鼠标,小手玩家也能用,雷柏VT9PRO mini

雷柏今年推出了不少新品&#xff0c;特别是一系列支持4K回报率的鼠标&#xff0c;凭借敏捷的响应速度&#xff0c;获得了非常好的评价。不过之前雷柏出的4K鼠标都多适合中大手&#xff0c;对小手用户不友好&#xff0c;而且配色较少&#xff0c;都是黑白色的基础款&#xff0c;…

数字集成系统设计——物理设计

目录 一、布局规划 1.1 规划 1.2 I/O单元 1.3 电源网络 1.3.1 要求 1.3.2 网络架构 1.3.3 混合信号芯片示例 1.4 布局 二、时钟分布 2.1 时钟偏斜 2.2 时钟分布网络 2.3 时钟树综合 2.4 时钟树收敛 三、布线与参数提取 3.1 布线(Routing) 3.2 布线规则示例 …

这是一家有图书馆的公司

Tubi 技术团队的同事们&#xff0c;除了爱写书、翻译书&#xff0c;也很爱读书。应广大爱书人号召&#xff0c;Tubi 中国团队从 2018 年 7 月开始兴建 Tubi 小书架&#xff0c;迄今已建成了一个有着17 种类别、近 500 本藏书、100 位常驻借阅成员、以音视频开发、广告推荐和团队…

什么是云服务器ECS及其优势、购买、使用方式和部署建议

阿里云服务器ECS英文全程Elastic Compute Service&#xff0c;云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务&#xff0c;阿里云提供多种云服务器ECS实例规格&#xff0c;如经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等&#xff0c;阿里云百科aliyunbai…

接口自动化测试持续集成,Soapui接口功能测试参数化

按照自动化测试分层实现的原理&#xff0c;每一层的脚本实现都要进行参数化&#xff0c;自动化的目标就是要实现脚本代码与测试数据分离。 当测试数据进行调整的时候不会对脚本的实现带来震荡&#xff0c;从而提高脚本的稳定性与灵活度&#xff0c;降低脚本的维护成本。 Soapui…

MySQL安装服务启动失败解决方案

在安装MySQL中&#xff0c;应用配置阶段&#xff0c;显示服务启动失败 查看日志说服务启动失败 我的电脑是win764位 新装的操作系统&#xff0c;之前出现过权限不足的提示&#xff0c;首先定位故障为权限问题。由于MySQL80服务在 计算机管理->服务 里面显示户别为&#xff…

Java实现Excel导入和导出

一 、环境准备 maven依赖 本次工具类的封装主要依赖于阿里巴巴的JSON包&#xff0c;以及表格处理的POI包&#xff0c;所以我们需要导入这两个库的依赖包&#xff0c;另外&#xff0c;我们还需要文件上传的相关包&#xff0c;毕竟我们在浏览器页面&#xff0c;做Excel导入时&a…

web学习笔记(十五)

目录 1.Date对象 1.1日期对象的概念 1.2Date()方法的使用 1.3Date()常用方法汇总 1.4例题&#xff1a;用函数编写一个倒计时 2.函数 2.1函数的概念 2.2函数的使用 2.3函数的参数 2.4函数的声明 2.5函数的返回值 2.6异步函数 3特殊函数类型 3.1匿名函数 3.2箭头函数…

[每周一更]-(第82期):认识自然处理语言(NLP)

GPT的大火&#xff0c;带起了行业内大模型的爆发&#xff1b;国内外都开始拥有或者研发自己的大模型&#xff0c;下边我们从NLP来进一步深入了解大模型、AI。 一、什么是NLP&#xff1f; 自然语言处理&#xff08;英语&#xff1a;Natural Language Processing&#xff0c;缩…