scanf函数含义:scan代表扫描,format代表格式,即格式化输入
1、格式化输入
下面应用scanf实现多输入显示,并规范显示a b c的打印内容,首先执行下列代码:
#include <stdio.h>
int main()
{
int a;
float b;
char c;
scanf("%d %f %c", &a, &b, &c);
printf(" a = %d\n b = %.3f\n c = %c",
a, b, c);
return 0;
}
然后在终端中输入a b c内容,如下图:
按下回车后显示如下:
2、scanf与缓冲区
还需要强调一下输入缓冲区,当利用scanf进行多输入时,首次输入的内容不足变量数时,不会将输入内容赋值给变量,因为系统首先将输入内容放入缓冲区,而非直接通过scanf()直接送入变量,只有当缓冲区中内容满足scanf要求时才会送入变量,不然一直等待用户输入。
执行下面代码:
#include <stdio.h>
int main()
{
int a;
float b;
char c;
double d;
scanf("%d %f %c %lf", &a, &b, &c, &d);
printf(" a = %d\n b = %.3f\n"
" c = %c\n d = %.5lf",
a, b, c, d);
return 0;
}
首先输入a b c的内容按下回车:
此时没有正常输出,而是继续等待输入,再次输入d的内容按下回车:
当缓冲区内容满足scanf设定要求时,会将缓冲区内容赋予变量继续执行