使用scanf函数进行输入时,需要注意哪些问题?

 我来答
物理公司的
2022-03-16 · TA获得超过5697个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1381万
展开全部
一、scanf()函数中格式控制后面是变量地址,而不是变量名,这个应该不用多说

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

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

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

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

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

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

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

scanf("%d%c%f",&a,&b,&c);
1
若输入1234a123o.26,则第1个数据对应%d格式,在输入1234之后遇字符’a’ ,因此系统认为数值1234后已没有数字了,第1个数据应到此结束,就把1234送给变量a。把其后的字符’a’送给字符变量b,由于%c只要求输人一个字符,系统判定该字符已输人结束,因此输入字符a之后不需要加空格。字符’a’后面的数值应送给变量c。如果由于疏忽把1230. 26错打成123o. 26,由于123后面出现字母o,就认为该数值数据到此结束,将123送给变量c,最后面几个字符并没有读入。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式