2、 getchar() -> man 2 getchar (用于清空缓冲区)
函数只能从标准输入缓冲区中获取一个字符
头文件:#include <stdio.h>
原型:
int getchar(void);
返回值:
成功:获取到的字符。
失败:EOF
一般地:
我们使用完scanf()后,都应该主动清空缓冲区。
例如:
scanf();
while(getchar()!='\n');
例子1:
char a;
int b;
scanf("%d",&b);
scanf("%c",&a); -> 因为回车还在缓冲区中,然后被%c拿走了。
printf("a = %d\n",a);
printf("b = %d\n",b);
运行结果: 输入了 50 + 回车
a = 10
b = 50
例子2:
char a;
int b;
scanf("%d",&b);
getchar(); -> 回车被拿走了,这时候缓冲区是空白的
scanf("%c",&a); -> 由于缓冲区是空白,所以阻塞。
printf("a = %d\n",a);
printf("b = %d\n",b);
运行结果: 输入了 50 + 回车 c + 回车
a