这个函数是判断输入的值是不是为整型,但是我如果输入字母的话就会输出两遍重新输入的语句(printf里的话),想问一下为什么

img

img

img

在 scanf("%c",&a); 后面插入 getchar();
用getchar() 函数吸收缓冲区里多余的字符。

在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。

//请今后要用
char c;
scanf("%c",&c);
//时,都改为
char s[2];
char c;
scanf("%1s",s);
c=s[0];
//自动跳过一个或多个空格或Tab字符或回车换行,读取下一个字符。```