scanf函数
#include <stdio.h>
void singleio();
void multipleio();
int main()
{
singleio();
// 情况标准输入缓存区
fflush(stdin);
printf("\n============\n");
multipleio();
return 0;
}
void multipleio()
{
int i, ret;
char c;
float f;
// scanf 函数在读取整型数、浮点数、字符串时会忽略\n’(回车符)、空格符等字符 (忽略是指 scanf 函数执行时会首先删除这些字符,然后再阻塞)
// scanf 函数匹配一个字符时,会在缓冲区删除对应的字符
ret = scanf("%d %c%f", &i, &c, &f); // ret是指scanf匹配成功的个数
printf("i=%d,c=%c,f=%5.2f\n", i, c, f);
printf("匹配成功个数:%d\n", ret);
}
// scanf用来读取标准输入,scanf把标准输入内的内容,需要放到某个变量空间里,因此变量必须取地址
// scanf会阻塞,是因为标准输入缓冲区是空的
void singleio()
{
int i = 10;
char c;
// 把标准缓冲区中的整型数读走了
scanf("%d", &i); // 需要用&取到变量i的地址
printf("%d\n", i);
// 情况标准输入缓存区
fflush(stdin);
scanf("%c", &c);
printf("c = %c", c);
}