该开始学C语言的时候没有特别留意scanf函数,结果写代码的时候遇到scanf函数,总会出问题,然后每次都是四处改改才是代码正常,一直都有点懵懵的,直到最近才发现其中的原理--那就是使用scanf函数时的相关注意事项。如下:
scanf(格式控制,地址表列);
此地址表列可以是变量的地址,或字符串的首地址。
注意:(1)、如果在格式控制字符串中除了格式声明以外还有其他字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符。
如果有scanf(“a=%f,b=%f,c=%f”,&a,&b,&c);在输入数据时,应在对应的位置上输入同样的字符。即输入a=1,b=3,c=2(注意输入的内容)
如果输入1 3 2
就错了。因为系统会把它和scanf函数中的格式字符串逐个字符对照检查的,只是在%f的位置上代以一个浮点数。此外,在“a=1”的后面输入一个逗号,它与scanf函数中的“格式控制”中的逗号对应。如果输入时不用逗号而用空格或其他字符是不对的。
(2)、在用“%c”格式声明输入字符时,空格字符和“转义字符”都作为有效字符输入。
例如:scanf(“%c%c%c”,&c1,&c2,&c3);
(3)、在执行此函数时应该连续输入3个字符,中间不要有空格。如abc;若在;两个字符间插入空格就不对了。如a b c;系统会把第一个字符’a’送给c1;第2个字符是空格字符‘ ’,送给c2;第三个字符’b’送给c3。而并不是把’a’送给c1,把’b’送给c2。把’c’送给c3。在输入数值数据时,如输入空格、回车、Tab键或遇非法字符(不属于数值的字符),认为该数据结束。
以上是我从课本“总结”出来的,方便大家了解,如需更加了解scanf函数,可查看《C程序设计》。如有任何问题,请随时联系我。谢谢!