scanf函数小知识
最近做题的时候发现老在scanf函数上出了很多问题,所以又回头从新了解了一边。
scanf函数的作用—自然是输入数据
形式:scanf(格式控制,地址列表)(地址列表是由若干个地址组成的列表,可以是变量的地址,或字符串的首地址)
1、如果在格式控制字符串中除了格式声明以外还有其他的字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符否则输出的数是错误的,因为系统会把它和scanf函数中的格式字符串逐个字符对照检查的,只有在%d的位置上代以一个整型数。同时在“a=1”后面输入一个逗号,它与scanf函数中的“控制格式”中的逗号对应(英文逗号与英文逗号,中文逗号与中文逗号),否则输出错误。
2、在用“%c”格式声明输入字符的时候,空格字符和“转义字符”中的字符都作为有效字符输入。所以在输入数值时,在两个数值之间需要插入空格(或其他分隔符),以是系统能区分两个数值,但是在连续输入字符时,在两个字符之间不要插入空格或其他分隔符,系统能区分两个字符(除非scanf函数中的格式字符串中由普通字符,这时在输入数据时要在原位置插入这些字符)。
3、在输入数值数据时,如果输入空格、回车、Tab键或遇到非法字符(不属于数值的字符),则认为该数据结束。
第1个数据对应%d格式,在输入1234之后遇到字符’a’,因此系统认为数值1234后已经没有数字了。把其后的字符’a’赋给字符变量b,由于%c只要求输入一个字符数字,系统判定该字符已输入结束,因此输入字符a之后不需要加空格。字符’a’后面的数值应赋给变量c。由于123后面出现了一个字母o,不输入数字,就认为该数值数据到此结束,将123送给c,后面几个字符没有被读入。
4、在输入%s格式的字符串时,系统把空格字符作为输入的字符串之间的分割符。
–在用键盘输入信息的时,并不是在键盘上敲一个字符,该字符就立刻送到计算机重去的。这些字符先暂时存在键盘的缓冲器中,只有输入完毕,按了Enter键才把这些字符一起输入到计算机中,然后按先后顺序分别赋给相应的变量