scanf函数是标准库函数,函数的原型位于头文件“stdio.h”中。 与printf函数一样,c语言在使用scanf函数之前不需要包含stdio.h文件。 scanf函数的一般形式如下。
scanf (“格式控制字符串”、地址表列);
其中,格式控制字符串的作用与printf函数相同,但无法显示未格式化的字符串或提示字符串。 地址表中的列被赋予每个变量的地址。 地址的名称后跟地址运算符“”。
在scanf语句的格式字符串中,键入一个或多个空格或回车键作为两个输入之间的间隔,因为“%d%d%d”之间没有输入未格式化字符的间隔。 例如:
7 8 9
或者
7
8
9
2 )“*”符号
表示此输入项目,读取后不提供相应的变量,即跳过其输入值。 例如:
scanf('%d%*d%d ),a,b );
输入为(1)2) 3时,给a赋予1,跳过2,给b赋予3。
3 )宽度
指定用十进制整数输入的宽度,即字符数。 例如:
scanf () )、a );
输入12345678,只给变量12345,剩下的部分被截断。 又如下。
scanf(mm )、a和b );
如果输入12345678,则将1234分配给a,将5678分配给b。
4 )长度
长度符号为l和h,l表示输入长整数数据(如%ld )和双精度浮点数(如%lf )。 h表示输入短整数数据。
使用scanf函数还需要注意以下事项: scanf函数没有精度控制。 例如,scanf('%5.2f ',a ); 是违法的。 不能尝试在此语句中输入两位小数的实数。
scanf需要指定变量的地址,如果指定变量名称就会出错。 例如scanf('%d ',a ); 是违法的。 需要更改为scnaf('%d”,a )。 是合法的。
输入多个数值数据时,如果格式控制字符串中没有格式以外的字符作为输入数据之间的间隔,可以用空格、制表符、换行符隔开。 C编译在出现空格、制表符、回车或非法数据(例如,如果在“%d”中输入“12A”,则a为非法数据)时结束。
输入字符数据时,如果格式控制字符串中包含格式字符以外的字符,则输入的所有字符都将被视为有效字符。