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表示,读取后就丢弃,不用返回。

三.结尾

感谢大家的阅读! ! !

 

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

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

相关文章

基于 IDEA 创建 Maven 的 Java SE 工程和 Java Web 工程

一、概念简介 Maven 工程相对之前的项目,多出一组 gavp 属性,gav 需要我们在创建项目的时候指定,p 有默认值,我们先行了解下这组属性的含义。 Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写&am…

刚买的助听器就弄丢了,不想白配,快来看看这8大助听器防丢小技巧

我们知道助听器可以让听损人士重新听到美妙的声音和享受沟通的乐趣。但是,助听器也是一种很贵的物品,如果不小心弄丢了,就会让人心痛不已。 更有甚者,有些人因为害怕丢失助听器,而不敢佩戴助听器,错过了听力…

解决Windows11 “我们无法设置移动热点”

目录 问题复现解决办法①启动网络适配器②打开移动热点③共享网络连接④连接移动热点总结 问题复现 因为交换机上网口限制,开发环境暂时没有WIFI设备,只有一根网线和一台笔记本电脑。于是开启笔记本电脑的WiFi共享服务。结果提示 “我们无法设置移动热点…

MySQL面试题(下)

09)查询学过「张三」老师授课的同学的信息 SELECTs.*,c.cname,t.tnameFROMt_mysql_teacher t,t_mysql_student s,t_mysql_course c,t_mysql_score scWHEREt.tidc.tid and c.cidsc.cid and sc.sids.sid and tname 张三 10)查询没有学全所有课程的同学的…

Unity实现 球形雾效散射光照

前言 首先,我们要解决的问题是,光源发出光线,打到雾中的粒子,粒子散射光线,散射的光线继续作为光源传播,继续打到其他粒子,再次散射,最终传入人的眼睛。 人眼单个点看到的颜色值,即为该光线方向所有粒子传到人眼的光线总和。 而这种方式的计算量几乎是无穷的,因此我…

7-35 有理数均值 分数 20

每日一言 我们把世界看错,反说它欺骗了我们。 --飞鸟集 题目 本题要求编写程序,计算N个有理数的平均值。 输入格式: 输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的…

应急管理蓝皮书 |《应急预案数字化建设现状和发展建议》下篇

导读 《应急预案数字化建设现状和发展建议》:297-313页 《中国应急管理发展报告》系列蓝皮书由中央党校(国家行政学院)应急管理培训中心(中欧应急管理学院)联合社会科学文献出版社研创出版,本着“权威前沿…

asp.net core项目发布到 iis上

我们都知道与传统asp.net 项目比较,ASP.NET Core则完全不同,它并不是运行在IIS的工作进程中,而是独立运行的。它运行于控制台应用程序之中,控制台中则运行了Kestrel Web服务器组件。Kestrel作为一款.NET Web服务器的实现&#xff…

【计算机网络】--集线器,路由器,交换机对比

🎵1.集线器 🌈1.1集线器概念 集线器是一种网络设备,广泛应用于计算机局域网环境中。它通常具有多个以太网接口,用于将多个计算机或其他网络设备连接在一起,形成一个网络拓扑结构。 🌈2.集线器的作用 集线器…

动态规划中如何利用map进行降维

1 总结:在动态规划类题目中什么样的能利用map进行降维呢 1.1 具有两数之和特性,能用公式表示需要搜索的值和当前可获得的值之间的数量关系 1.2 具有等差、等比数列特性 2 例子 2.1 前缀和相关的题目 利用前缀和求解的lc题目汇总 2.2 LC1218. 最长定…

2024年CES展会都有些啥?亮点集锦都在这里

💡 大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、读书和自媒体。 CES在科技界是一场盛会,被誉为科技界的春晚,展会上前沿的技术、概念的产品吸引不少关注。2024年CES是在2023年大语言模型…

uniapp 实战 -- 创建 uni-admin 项目,部署到 uniCloud 前端网页托管(免费云空间)

创建 uni-admin 项目 可见 只能创建一个超级管理员,创建过后,登录页将不再显示 注册管理员账号 部署到 uniCloud 前端网页托管 部署成功,访问地址可预览效果! https://static-mp-7b65169e-151f-4fbb-a5ba-2125d4f56e3f.next.bs…

暴雨信息|2024算力网络发展的四大趋势

数字经济时代,算力是全社会数字化、智能化转型的重要基石。2024年,以人工智能技术将进一步激发算力需求,算力网络、智算中心、超算中心将迎来怎样的发展机遇? 暴雨信息首席科学家李胜超在接受通信世界全媒体记者采访时表示&#…

mysql异步复制与半同步复制

mycat异步复制: Mycat是一个基于MySQL协议的开源数据库中间件,它提供了数据库分片、读写分离、异步复制等功能。要在Mycat中实现异步复制,您需要进行以下配置和操作: 1. 安装Mycat:首先,需要在您的服务器上…

俩万字详解C++STL期末复习知识点(C++STL课本源码私信可得)

邸老师复习建议 复习注意事项 1 不考死记硬背的题,比如名词解释。 2 选择题重点考核宏观性、综合性的问题,比如:把电话通讯录存入容器,该选哪一个容器? 3 选择题重点考核理解性的问题,比如,…

TCP/IP 网络模型

TCP/IP 网络通常是由上到下分成 4 层,分别是应用层,传输层,网络层和网络接口层。 应用层 应用层专注于为用户提供应用功能,比如 HTTP、FTP、Telnet、DNS、SMTP等。我们电脑或手机使用的应用软件都是在应用层实现。应用层是不用去关…

ubuntu 20.04部署brc20 ordinals铭文

1、btc节点部署文档详见btc节点部署 官方文档 2、更改之前节点部署rpc访问方式 下载bitcoin包后相对路径:bitcoin-26.0/share/rpcauth/rpcauth.py 文件 执行文件 ~# python3 rpcauth.py admin String to be appended to bitcoin.conf: rpcauthadmin:sdoieoifjeofg3…

mysql日期时间函数

当前时间 > SELECT CURDATE(),CURTIME(),NOW(); ->2024-01-10 | 10:47:18 | 2024-01-10 10:47:18 > select sysdate(); ->2024-01-10 10:47:18 NOW() 返回当前日期时间,返回格式要么是字符串"YYYY-MM-DD HH-MM-SS"格式,要么是…

波动,热传导,扩散方程建立

数学物理方程是从自然科学的各个领域和工程技术领域中导出的偏微分方程和积分方程.在这些以偏微分方程为基础的数学模型中,二阶线性偏微分方程中的三个典型方程与定解条件的建立、解法及其应用.描述振动和波动过程的波动方程、描述输运过程的热传导&…

【grpc】利用protobuf实现java或kotlin调用python脚本,含实现过程和全部代码

前言 在一些特殊场景中,我们可能需要使用java或者其他任意语言调用python脚本或sdk等。本文的需求衍生也不例外于此,python端有sdk,但只能在python中调用,于是就有了本文章。 常见的调用方式如jython、python提供http rest接口、…