新手请教,关于使用scanf返回值的几点问题
本人想做一个scanf输入检查,输入的为4位整数(例如先锁定号码为8987),代码大致如下:int a = 0;
scanf ("%d",&a);
while (a != 8987){
printf("输入有误,请重新输入:");
scanf("%d",&a);
}
printf("pass");
但问题来了,当我输入字符的时候,竟然while死循环了,不断打印printf而scanf却不起效。
第二点,如果我想让代码检查输入的一定为整数(不能为字符),并且必须为8987,我的代码该怎么改?
第三点,本人尝试返回scanf的返回值,当没接收则0,有接收一个数据则1,而我的疑问是EOF的情况是如何发生,并且可否打印屏幕显示出来?
请各位指教。