一、scanf用法
功能:
通过键盘给程序中的变量赋值。
# include <stdio.h>
int scanf(const char *format, ...);
示例:
scanf("%d%d%d",&a,&b,&c);
二、格式字符
格式字符 | 说明 |
---|---|
%a | 读入一个浮点值(仅C99有效) |
%A | 读入一个浮点值(仅C99有效) |
%c | 读入一个字符 |
%d | 读入十进制整数 |
%i | 读入十进制,八进制,十六进制整数 |
%o | 读入八进制整数 |
%x | 读入十六进制整数 |
%X | 读入十六进制整数 |
%c | 读入一个字符 |
%s | 读入一个字符串 |
%f | 读入一个浮点数 |
%F | 读入一个浮点数 |
%e | 读入一个浮点数 |
%E | 读入一个浮点数 |
%g | 读入一个浮点数 |
%G | 读入一个浮点数 |
%p | 读入一个指针 |
%u | 读入一个无符号十进制整数 |
%n | 至此已读入值的等价字符数 |
%[] | 扫描字符集合 |
%% | 读%符号 |
三、附加格式说明字符
修饰符 | 说明 |
---|---|
L | 输入"长"数据 |
LL | 输入"长"数据(仅C99有效) |
l | 输入"长"数据 |
ll | 输入"长"数据(仅C99有效) |
h | 输入"短"数据 |
hh | 输入"短"数据(仅C99有效) |
W | 指定输入数据所占宽度 |
* | 空读一个数据 |
四、非输入控制符
在 scanf 中,所有的“非输入控制符”都要原样输入。
示例:
scanf("%d,%d,%d",&a,&b,&c);
输入:3,4,5
五、注意事项:
输入的参数个数及参数类型要一致。
scanf("%d%c%d",&a,&b,&c);
输入:123t55
可以规定输入数据的位数,比如:
scanf("%2d%*4d%3d",&a,&b);
输入:123456789
读取:a=12 b=789
输入数据时不能规定精度,比如:
scanf("%5.2f",&a);
期待:12345 ⇒ 123.45
实际:12345 ⇒ 0