C/C++知识点之C语言格式化之scanf
小标 2018-11-13 来源 : 阅读 681 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C语言格式化之scanf,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C语言格式化之scanf,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

1.       格式输入函数的一般形式

函数功能:用于接收从键盘上输入的数据,输入的数据可以是整型、实型和字符型等。
一般形式:scanf(“格式控制字符串”,变量地址列表);
 
格式控制字符串:用于控制输入数据格式,必须以引号引导,内容由一个或多个格式控制字符组合而成,也可以含有非格式控制字符,非格式控制字符称为普通字符。普通字符按原样在对应位置输入。
变量地址列表:用于指定存放数据的变量地址。如果需要给多个变量输入数据,则各变量地址要用逗号隔开。变量地址表示方式是:&变量名。例如,&a表示变量a的地址。
2.       格式控制
格式控制由格式控制字符串实现。格式控制字符串由格式字符和普通字符两部分组成。
(1)       格式字符
格式字符串形式为:%【*】【width】【F|N】【h|l】type
与printf函数的格式符有相同之处,也有不同之处。
1*为输入赋值抑制字符,表示该格式说明要求输入数据,但不赋值,也即在地址列表中没有相应的地址项,例如:
scanf(“%3d%*5d%f”,&a,&x);
如果执行时输入:
2001200 4.1
则200传给a,4.1传给x,1200不赋给任何变量。
2width为宽度指示符,表示该输入项最多可输入的字符个数。如遇空格或不可转换的字符,读入的字符将减少,例如:
scanf(“%3d%5d%f”,&a,&x);
如果执行时输入:
2001200 4.1
则200传给a,1200传给b,4.1传给x。
“%3d”控制第一个数据只取3个字符转换成整型数200;“%5d”控制第二个数据,但从输入流中截取4个字符后,遇到空格,因此第二个数据只得到了4位数。
(2)       普通字符
与printf函数的普通字符不同,scanf的格式控制字符串中普通字符是不显示的,而是规定了输入时必须输入的字符,例如:
scanf(“i=%d”,&i);
执行该语句时,输入应按下列格式:
i=30
运行语句:
scanf(“%d,%f”,&a,&x);
输入格式应为:
10,0.3
“%d,%f”说明输入一个整型数和一个浮点数之间要输入一个逗号。
3.       地址列表
地址是由若干个地址组成的列表,可以是变量的地址、字符串的首地址、指针变量等,各地址间以逗号间隔。
格式输入函数执行结果是将键盘输入的数据流按格式转换成数据,存入与格式相对应的地址指向的存储单元中。
注意事项:
1.       对unsigned型变量的输入格式,可以用%u、%d、%o或%x格式。
2.       在用scanf函数对变量进行赋值时,一般不使用域宽m对格式进行修饰,以免发生错误。
对于%d格式,如果指定了域宽,则从键盘上输入数据时,数据之间不加分隔符(如空格等),由系统按给定的域宽自动截取数据。
3.       如果在%后面、格式字符前面加上一个“*”附加说明符,表示跳过该输入,输入的数据不放入变量中。
4.       使用scanf函数对实型变量赋值时,在格式%f中加入域宽修饰符,其中小数点算一个域宽。
5.       使用scanf函数对实型变量进行赋值时,在格式%f中不得控制小数位的精度,但在printf函数中可以使用,并且经常使用。
6.       Scanf函数的“格式控制字符串”中一般不使用转义字符,否则要按原样在对应位置从键盘输入,为输入数据带来不必要的麻烦。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程