scanf()函数是格式输入函数,用scanf()按用户指定的格式从外部输入设备(键盘)把若干个任意类型数据输入到指定的变量中。
1.scanf()函数的一般形式
scanf()函数中的格式控制字符串的作用与printf()函数中的相同,地址表列是由若干个地址组成的表列,可以是变量的地址或字符串的首地址。变量的地址由地址运算符“&”与变量名组成的,如:&i和&j分别表示变量i和变量j的地址,这个地址就是C编译系统在内存中给i、j变量分配的地址。
例如:
“scanf("%d",&i);”是将用户从外部输入设备(键盘)输入的数据存放到变量i中。
2.格式声明
与printf()函数中的格式声明相似,以“%”和格式字符组成,中间可以插入附加字符。scanf()函数所用的格式字符详见表3-3,格式附加字符详见表3-4。
3-3 格式字符表
3-4 格式附加字符表
【例3.5】用scanf()函数输入数据。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int i,j;(www.xing528.com)
5 printf("input i,j\n");
6 scanf("%d%d",&i,&j);
7 printf("i=%d,j=%d\n",i,j);
8 return 0;
9 }
程序结果如图3.11所示:
图3.11 例3.5程序结果图
【例题中关键问题说明】
(1)由于scanf()函数本身不能显示提示字符串,因此先用第5行语句在屏幕上输出提示信息。
(2)在scanf()函数的格式控制字符串中,由于没有非格式字符在“%d%d”之间作输入时的间隔,在输入数值数据时需要用一个以上的空格、Tab制表符或回车键作为每两个输入数据之间的间隔。如果格式控制字符串为“%c%c”,在输入两个字符型数据时则不能用空格分隔。如果在“格式控制字符串”中有非格式字符,则需要在输入数据时在对应位置上输入与这些字符相同的字符。如“scanf("%d,%d",&i,&j);”,输入时的形式应为“10,20”。如“scanf("i=%d,j=%d",&i,&j);”,输入时的形式应为“i=10,j=20”。
(3)scanf()函数地址表列中要求给出的是变量的地址,若给出变量名则会出错。如“scanf("%d%d",i,j);”是非法的。
(4)此程序是一个顺序结构程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。