学习C语言两个月后的收获(篇目二) #超详细的scanf() 讲解-->基本用法、scanf() 的返回值 、占位符、赋值忽略符

29 篇文章 0 订阅
订阅专栏

目录

一. scanf

1.基本用法:scanf() 读取用户的键盘输入  ----> 程序在运行到这个语句的时候,会停下来,等待用户从键盘输入。当用户输入数据之后按下回车,scanf() 就会处理用户的输入,将其存入变量。  scanf() 是库函数 ,其头文件是      

2.scanf() 的第一个参数是 格式字符串 ,里面会放置占位符,用来告诉计算机用户输入的数据类型,其后计算机才能处理这些数据(与printf() 的占位符相似)

3.scanf() 的返回值   <其返回值是整数,代表成功读取的变量个数>​编辑

4.占位符: (占位符与printf() 相似)

5.赋值忽略符 *


一. scanf

1.基本用法:scanf() 读取用户的键盘输入  ----> 程序在运行到这个语句的时候,会停下来,等待用户从键盘输入。当用户输入数据之后按下回车,scanf() 就会处理用户的输入,将其存入变量。  scanf() 是库函数 ,其头文件是 <stdio.h>     

 (注:标准输入一般是键盘;标准输出一般是电脑屏幕)

   原理:用户输入的数据会先放入缓存(内存区域),等按下回车键之后,按照占位符对缓存进行解读 。解读用户数据时,会从上一次遗留的第一个字符开始,直到读完缓存,或者遇到第一个不符合条件的字符开始。如下面代码:

上述代码,scanf() 读取用户输入时,%d 表示整型,所以 %d 占位符读到 123 便停止了,因为后面的 . 并不属于整数的有效类型。当第二次调用scanf() 时,缓存中还剩下 .456s ,%f 是浮点型,只读 0.456 ,到s 便会停止,因为 s 不属于浮点型的有效字符。

                                                                           

2.scanf() 的第一个参数格式字符串 ,里面会放置占位符,用来告诉计算机用户输入的数据类型,其后计算机才能处理这些数据(与printf() 的占位符相似)

可以同时输入多个数据,但是输入时的格式要与格式字符串中的格式保持一致。

 请看下面代码:当数据连在一起的时候,计算机分辨不出这是一个数据还是多个数据,即使在格式字符串中"%d%d%d %d",但是数据之间要用空格(空白字符隔开)

空白字符隔开数据,计算机才知道数据是单独的

或者在知道单个数据数据的位数时(eg.个位)可以限制占位符的宽度

 只有scanf() 在处理非%c 类型的数据时,会主动跳过、过滤掉空白字符包括空格、制表符、换行符(即使按回车键将输入分为了几行,也不影响解读)等。

-->所以这也就是scanf() 不会读全带有空白字符的字符串的原因

除非搞多个scanf() 来读取

由上,我们可以得到 %s 的规则 从当前第一个空白字符开始读起,直到遇到空白字符(即空格、换行符、制表符等)才停止 --->  %s 不包含空格,就不适合读取带有空格的字符串。

scanf() 传递的不是值,而是地址,所以要在变量面前加上&,但如果变量本身就是指针,就不用加&。

int arr[]={1,2,3,4};
scanf("%d",arr); //数组名是该数组首元素的地址,为指针,故而不加&

TIps: 指针变量里面存放的是地址,表示指向这个存地址的数值。

3.scanf() 的返回值   <其返回值是整数,代表成功读取的变量个数>

简单来说就是,只要没有返回 -1 ,都表示scanf() 读取没有错误。若是scanf() 返回 0 则表示未读到任何项,若是返回整数,则代表了scanf() 成功读取的个数。

4.占位符: (占位符与printf() 相似)

%d  :整型

%s  :字符串

%f   : float 类型浮点数

%lf  : double 类型附浮点数

%Lf  : long double 类型浮点数

%[ ]  : 在方括号中指定一组匹配的字符(比如:%[0-9] ),遇到不在集合内中的字符,匹配会停止

%c  : 字符。只要是字符,都会去读取(包括空白字符)

除了 %c ,其他的占位符都会自动忽略起首的空白字符。但是如果想要让%c 强制跳过起首的空白字符,就在 %c 前面添加一个空格,以表示跳过起首的零个或多个空白字符.

char ch = '0';
scanf(" %c", &ch )://若输入为 "      s"
printf("%c\n", ch ); //输出为 's'

注:为什么这里对 char 类型初始化用的是 ‘0’ ?因为字符本质上就是ASCII码值。

5.赋值忽略符 *

当要用户输入一个数据,然而这个数据的格式有多种表现形式,只想让scanf() 读取主要数据,而忽略格式,该怎么做?(eg.输入日期 年-月-日 or 年/月/日 or 年.月.日 等多种格式)

‘ * ’ ------>  赋值忽略符

%*c  ;在 占位符的% 后面添加一个 赋值忽略符 * ,表示 这个占位符没有对应的变量,解读后不必返回。

简单来说就是这个占位符不会有返回值,解析后就被丢弃了。

写文章

热门文章

  • C语言 #字符指针 1533
  • C语言 #指针数组 #数组指针 #数组参数、指针参数 1481
  • 学习C语言两个月后的收获(篇目四)#超详细的数组讲解 1430
  • C语言 底层逻辑详细阐述指针(一)万字讲解 #指针是什么? #指针和指针类型 #指针的解引用 #野指针 #指针的运算 #指针和数组 #二级指针 #指针数组 1423
  • 常见 字符串库函数 的使用与模拟实现 #strlen #strcpy #strcat #strcmp#strstr #strtok #strncpy #strncat #strncmp 1382

分类专栏

  • Python
  • 解题 9篇
  • 数据结构与算法 8篇
  • C语言 29篇

最新评论

  • 解题 - 模拟实现 atoi

    CSDN-Ada助手: Java 技能树或许可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java

  • C语言 动态内存管理 #动态内存函数的介绍 #常见的动态内存错误 #C\C++ 程序的内存开辟 #柔性数组

    2301_80721538: 通透,这才是好文章

  • C语言 动态内存管理 #动态内存函数的介绍 #常见的动态内存错误 #C\C++ 程序的内存开辟 #柔性数组

    普通网友: 优质好文,博主的文章细节很到位,兼顾实用性和可操作性,感谢博主的分享,文章思路清晰【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • C语言 数据存储之结构类型 万字讲解#数据类型详细介绍 #整型在内存中的存储 #大小端字节序 #浮点型在内存的存储解析

    小容小容: 思路清晰明了,干货满满当当,感觉到博主的用心了博主很有耐心,更有对知识的热忱和热爱,写了这么实用有效的分享,值得收藏点赞。支持支持

  • C语言 #字符指针

    小容小容: 思路清晰明了,干货满满当当,感觉到博主的用心了博主很有耐心,更有对知识的热忱和热爱,写了这么实用有效的分享,值得收藏点赞。支持支持

最新文章

  • leetcode解题 - #用栈实现队列 #用队列实现栈 #循环队列
  • 数据结构与算法 - 树 #数的概念 #二叉树 #堆 - 堆的实现/堆排序/TOP-K问题
  • 数据结构与算法 - 队列
2024
10月 7篇
09月 13篇
08月 11篇
07月 10篇
06月 5篇
05月 1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢小孩看书雕塑东营广场玻璃钢雕塑清远玻璃钢人物雕塑销售厂家江苏室内商场美陈有哪些汕头党建文化玻璃钢人物雕塑苏州玻璃钢人物雕塑定做五华区玻璃钢雕塑产品厂家哪家好新乡江门玻璃钢雕塑天津商场主题创意商业美陈费用安徽仿铜玻璃钢雕塑供应商佛山玻璃钢模型雕塑影视卡通关羽玻璃钢雕塑文峰玻璃钢雕塑定制玻璃钢雕塑怎么折玻璃钢思考读书雕塑销售罗马柱玻璃钢雕塑青海玻璃钢动物雕塑设计附近校园玻璃钢雕塑设计玻璃钢雕塑订做价格济南水果玻璃钢雕塑定做价格韶关玻璃钢雕塑介绍泡沫玻璃钢雕塑制作新余欧式玻璃钢雕塑优势澳门户外景观玻璃钢雕塑商场电梯美陈河南季节性商场美陈销售厂家玻璃钢玩具雕塑厂家深圳泡沫玻璃钢雕塑设计制作明光玻璃钢羊年雕塑玻璃钢现代人物景观雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化