Professional Documents
Culture Documents
• 格式:scanf(格式控制串,地址表列)
• 功能:利用键盘(或系统指定的其他输入设备),按指定
的格式输入若干任意类型的数据。
int a,b;
scanf("%d%d",&a,&b);
• 函数说明:
(1) “格式控制串”用来指出输入的格式,由“%”和格式
符以及普通字符)组成。
(2)“地址表列”是由若干个地址组成,可以是变量地址或
字符串首地址。 1
常用scanf()格式控制符
d: 输入十进制带符号整数
f,e:输入float单精度实数
c: 输入单个字符
s: 输入一个字符串
2
scanf()的格式修饰符
一般格式:%[m][l][L][h]格式符
说明如下:
m 指定输入数据的位宽
l 加在d、u格式前表示输入long型数据
加在f、e格式前表示输入double型数据
L 加在f、e格式前表示输入long double型数据
h 加在d格式前表示输入short 型数据
3
如何正确输入数据
输入数据时可以分隔多个输入数据的方法:
• 一个或多个空格;
• 回车键、跳格键tab键;
• 达到输入位宽;
• 遇到非法字符。
4
scanf()的格式使用-1
• 使用空格及回车键分隔数据
例如:
int a,b;
float c;
scanf("%d%d%f",&a,&b,&c);
printf(("%d %d %f",a,b,c);
输入:12343.5 输入:12
34
输出:12 34 3.500000 3.5
5
scanf()的格式使用-2
• 使用域宽控制输入数据。
例如:
int a,b;
scanf("%3d%3d",&a,&b);
printf("a=%d,b=%d",a,b);
输入:123456
输出:a=123,b=456
6
scanf()的格式使用-3
• 数值型数据和字符型数据混合输入方法
例如:
int a,e;
char b,c,d;
scanf("%d%c%c%c%d",&a,&b,&c,&d,&e);
printf("a=%d,b=%c,c=%c,d=%c,e=%d",a,b,c,d,e);
输入:123abc789
输出:a=123,b=a,c=b,d=c,e=789
问题:如果输入字符数据时之间加入了空格,会出现
什么结果?
7
scanf()的格式使用-4
• 格式控制字符串中包含普通字符,输入时必须照原样输
入普通字符,否则将导致输入结束。
例如: 最好不要采用
int a,b,c; 这种方式!
scanf("a=%d,b=%d,c=%d",&a,&b,&c);
printf("a=%d,b=%c,c=%c",a,b,c);
输入: a=1,b=2,c=3