栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

对于scanf函数的研究(详细)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对于scanf函数的研究(详细)

众所周知scanf(格式说明符,地址列表)可不包含头文件stdio.h, 与printf的函数相同,不能显示非格式字符串,也就是不显示提示字符串。

格式:scanf("格式控制字符",&  )其中&(地址的运算符)表示的是and

这也就是c语言的不同与java之处

1、*表示的是该输入项,读入后不赋予任何变量。相当于删除的意思吧

由上图我们可以看出自动把4跳过去了,说明%*d有跳过的意思,因为只有两个取地址符号,说明只是输出两个整型变量

宽度: 用十进制整数指定输入的宽度(即字符数),当实际输入小于所打宽度,前面补空格,但是如果实际输入数据大于所打宽度,按照原数输出

 但是不能用scanf控制精度输出,例如scanf("%7.2d",&a); 用此函数控制输出函数为宽度为7,保留2位小数的数,是非法的(也就是错的)

2,对于格式控制字符的研究

再输入字符数据时,若格式控制串中无非格式字符,则认为所有输入字符均为有效字符

比如scanf("%d%d%d",&a,&b,&c);

当你输入a(空格)b(空格)c时

只会输出a b,只是因为自动将d赋值给a,空格赋值给b,e赋值给了c

 

但是当你scanf("%d %d %d",&a,&b,&c);(在%d与%d之间加入了空格)

输入:d e f,输出:def

 在这里我们就需要注意当为字符型时要注意你空格的输出,但是当你是数字时就不需要考虑了。(这是因为空格也属于字符)

3. 但是在scanf中如果格式控制符串中有非格式字符时也要输入非格式字符

出现了错误现象 

 这样就对了

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327961.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号