Scanf忽略某些类型的输入

Scanf忽略某些类型的输入,c,scanf,C,Scanf,在我的程序中,我使用如下scanf函数: if(((scanf("%c %d %d",&zp, &min, &max)) != 3) || (zp != 'c' && zp != 'l') || min < 0 || min > max){ if (! feof (stdin)){ printf("Wrong input.\n");

在我的程序中,我使用如下scanf函数:

        if(((scanf("%c %d %d",&zp, &min, &max)) != 3) 
            || (zp != 'c' && zp != 'l')  || min < 0 || min > max){
            if (! feof (stdin)){
                printf("Wrong input.\n");
            }
            else{
                return 1;
            }
        }
它起作用了;但当我输入

a
它等待第二个值


知道它为什么不起作用了吗?

尝试添加空格
%c%d%d“
-->
%c%d%d”
。报告
zp
的数值以了解原因。这是scanf的预期行为,它等待您的输入以满足输入条件我发现,scanf对第一个字符不做任何操作,并且只检查整数。。。
a