Scanf忽略某些类型的输入
在我的程序中,我使用如下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");
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