开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 23 天,点击查看活动详情
scanf
简介:
scanf()函数也是一个在stdio.h中声明的一个函数。调用scanf()函数时,需要传入变量的地址作为参数,此时scanf()函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量。
下面回忆一下占位符:
%d:以带符号的十进制形式输出整数(但正数不输出正号+)%o:以不带符号的八进制形式输出整数%x:以不带符号的十六进制形式输出整数%u:以不带符号的十进制形式输出整数%c:输出一个字符%s:输出一个或多个字符%s:输出一个或多个字符(即字符串)%f:以小数形式输出单、双精度数,默认输出6位小数%e:以标准指数形式输出单精度、双精度数,数字部分小数位数为 6 位%lu:32位无符号整数%llu:64位无符号整数
以下是 scanf() 函数的使用例子。
比如:
#include<stdio.h>
int main(void)
{
int a, b, c;
printf("请输入三个数字:");
scanf("%d%d%d", &a, &b, &c);
printf("%d,%d,%d\n",a,b,c);
return 0;
}
运行结果为:
请输入三个数字:2 4 8
2,4,8
上述输入语句(scanf())被调用时,程序会等待用户输入数据,最后会按照格式字符串"%d%d%d" 的形式将输入的数据存储到对应的三个变量中(我们利用 & 分别获得三个变量的内存地址)。
注意,这里在输入的时候,每个数据之间的分隔符是一个或多个空格,tab键或者回车符。
如果我们想使用逗号
,来分隔输入的数据,那么相应的输入语句应该这么写:scanf("%d,%d,%d", &a, &b, &c);。当然,输入格式的分隔符是任意的,我们还可以使用星号*,井号#等。
在用 %c 输入时,空格和 "转义字符" 均作为有效字符。
比如:
#include<stdio.h>
int main(void)
{
char a, b, c;
printf("请输入三个字符:");
scanf("%c%c%c",&a,&b,&c);
printf("%c,%c,%c\n", a,b,c);
return 0;
}
运行第一次:
请输入三个字符:abc
a,b,c
运行第二次:
请输入三个字符:a b c
a, ,b
下面是使用 %s 来接收字符串的例子:
#include <stdio.h>
int main()
{
char str[20];
printf("请输入你的学号:");
scanf("%s", str);
printf("学号:%s\n", str);
return(0);
}
运行结果如下:
请输入你的学号:01220583
学号:01220583