C语言int型赋值字母后"屏蔽"代码

问题遇到的现象和发生背景

C语言 定义int型变量,输入字母时异常处理,并且屏蔽代码

用代码块功能插入代码,请勿粘贴截图

#include

int main(){
int a;
scanf("%d",&a);
printf(" a = %d\n",a);
scanf("%d", &a);
printf(" a = %d\n",a);
}

运行结果及报错内容

输入数字 结果如下:
8
a = 8
50
a = 50
输入字母 结果如下:
w
a = 8
a = 8
直接把第二个scanf代码屏蔽了

我的解答思路和尝试过的方法

想不出来 根本不知道怎么处理

我想要达到的结果

检测赋值给int变量的输入合法

那你要检查scanf的返回值是否为1,不为1,你要清空输入缓冲区,再重新接收整数


#include <studio.h>
void main()
{
int n=0;
while(n!=99999)
{
if((scanf("%d",&n)==0))
{
printf("错误!!请重新输入\n");
fflush(stdin);
continue;
}
else
printf("OK!!!\n");
}
}

有帮助的话采纳一下哦!