Scanf函数清除缓冲区
之前涉及到scanf会先到缓冲区看看是否存在数据,若存在数据,就直接拿缓冲区的数据过来使用,这就涉及到了一个问题,那如果缓冲区的数据不是我想要的呢?
方法一:我们用scanf吸收掉
我们的代码这样写:
int main(int argc, const char * argv[]) {
printf("请输入一个整数\n");
int num1;
scanf("%d",&num1);
printf("请输入一个字符\n");
char c;
scanf("%c",&c);//吸收掉一个回车
scanf("%c",&c);
printf("num1= %d ,c= %c\n",num1,c);
return 0;
}
效果如下: