今天写到scanf突然发现缓冲区输入不定时,对于清除缓冲区很麻烦,
而去网上查了几种效果也不是很理想,自己综合网上的方法写了一个
如果单独使用getchar()函数一次只能清除一个,但是对于输入不定的情况而言虽然能用但是不是很理想,所以要和循环配套使用,而循环的使用需要结束条件,此时条件为
getchar()!='n'
即可,故,整体为
float a=0;
for(;;)
{
printf("Enter :");
scanf("%f",&a);
if(getchar()!='n')
{
while(getchar()!='n')
continue;
printf("Invalid Number!n");
continue;
}
}
这种强制输入一个float,如果输入的不是一个数字形式,就会强制清除掉然后要求重新输入
这个是我代码的一部分,并不是全部所以这段单独运行起来的话是死循环,可以在出if后在续写,适量填充即可



