2.6.4 格式输入函数scanf
scanf函数称为格式输入函数,即按照格式字符串规定的格式,从键盘上把数据输入到指定的变量之中。scanf函数调用的一般形式为:
- scanf(“格式控制字符串”, 输入项地址表);
其中,格式控制字符串的作用与printf 函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表项中给出各变量的地址,地址是由地址运算符“&”后跟变量名组成的(如&a, &b)。
scanf函数中格式字符串的构成与printf函数基本相同,但使用时有几点不同。
(1)格式说明符中,可以指定数据的宽度,但不能指定数据的精度。例如:
- float a;
- scanf(“%10f”,&a); /*正确*/
- scanf(“%10.2f”,&a); /*错误*/
(2)输入long型数据必须使用%ld,输入double数据必须使用%lf或%le。
(3)附加格式说明符“*”使对应的输入数据不赋给相应的变量,如程序2.11。
【程序 2.11】用scanf函数读取输入的变量,并检查读取结果:test11.c。
- #include <stdio.h>
- main()
- {
- int a;
- float b;
- char c;
- float d; /*定义4 个不同数据类型的变量*/
- scanf("%d",&a); /*把输入的十进制整数赋给整型变量*/
- printf("a=%d\n",a);
- scanf("%10f",&b); /*把输入的实数赋给实型变量*/
- printf("b=%f\n",b);
- scanf("%s",&c); /*把输入的字符赋给字符型变量*/
- printf("c=%c\n",c);
- scanf("%*d",&d); /*输入数据,不赋给相应的变量*/
- printf("d=%f\n",d);
- }
程序运行结果如下(↙表示回车):
- 654↙
- a=654
- 1.23↙
- b=1.230000
- e↙
- c=e
- 4.6↙
- d=-107374176.000000