使用scanf()函数时应注意的问题

、scanf()函数中格式控制后面是变量地址,而不是变量名,这个应该不用多说

、如果在格式控制字符串中除了格式声明以外还有其他字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符。
例如:

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

在输人数据时,应在对应的位置上输人同样的字符。即输入a=1,b=2,c=3,如果输入1 2 3,就错了。因为系统会把它和scanf函数中的格式字符串逐个字符对照检查的,只是在%f的位置上代以一个浮点数。

注意!!!在a=1”的后面输入一个逗号,它与scanf’函数中的“格式控制”中的逗号对应。如果输入时不用逗号而用空格或其他字符是不对的。

重点
在用“%c”格式声明输入字符时,空格字符和“转义字符”中的字符都作为有效字符入,例如:

scanf("%c%c%c",&c1,&c2,&c3);

在执行此函数时应连续输入3个字符,中间不要有空格,如abc
如果在两个字符中间插入空格就错了,如a b c,那么系统会把第1个字符’a’送给c1;第2个字符’ '(也就是空格)送给c2;第3个字符’b’送给c3,并没有达到想要的效果。

注意!!!输入数值时,在两个数值之间需要插入空格(或其他分隔符),以使系统能区分两个数值。在连续输入字符时,在两个字符之间不要插入空格或其他分隔符,(除非在scanf()中的格式字符串有普通字符,这时输入数据就要在原位置上插入该字符),这样系统才能区分两个字符。

重点
在输入数值数据时,如输入空格、回车、Tab键或遇非法字符(不属于数值的字符),认为该数据结束。
例如

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

若输入1234a123o.26,则第1个数据对应%d格式,在输入1234之后遇字符’a’ ,因此系统认为数值1234后已没有数字了,第1个数据应到此结束,就把1234送给变量a。把其后的字符’a’送给字符变量b,由于%c只要求输人一个字符,系统判定该字符已输人结束,因此输入字符a之后不需要加空格。字符’a’后面的数值应送给变量c。如果由于疏忽把1230. 26错打成123o. 26,由于123后面出现字母o,就认为该数值数据到此结束,将123送给变量c,最后面几个字符并没有读入。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值