C语言中scanf()的用法!
scanf简易讲解
scanf 原型:
# include <stdio.h>
int scanf( const char *format, ... );
scanf()
是C语言中的一个输入函数。与printf
函数一样,都被声明在头文件stdio.h
里,因此在使用scanf函数时要加上#include <stdio.h>
。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
例:使用scanf函数输入数据。
#include <stdio.h>
int main(void)
{
int a,b,c;
printf("Give me the value of a,b,c seperated with whitespaces:\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
&a,&b,&c中的&是寻址操作符,&a表示对象a在内存中的地址。变量a,b,c的地址是在编译阶段分配的(存储顺序由编译器决定)。 这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。
输入格式说明符前缀为百分号(%),告诉 scanf() 下次读入何种数据类型。这些格式说明符的清单如下表所示:
代 码 | 意义 |
---|---|
%a |
读浮点值(仅适用于 C99) |
%A |
读浮点值(仅适用于 C99) |
%c |
读单字符 |
%d |
读十进制整数 |
%i |
读十进制、八进制、十六进制整数 |
%e |
读浮点数 |
%E |
读浮点数 |
%f |
读浮点数 |
%F |
读浮点数(仅适用于 C99) |
%g |
读浮点数 |
%G |
读浮点数 |
%o |
读八进制数 |
%s |
读字符串 |
%x |
读十六进制数 |
%X |
读十六进制数 |
%p |
读指针值 |
%n |
至此已读入值的等价字符数 |
%u |
读无符号十进制整数 |
%[ ] |
扫描字符集合 |
%% |
读 % 符号(百分号) |