#include <stdio.h>
int main(void)
{
int a,b;
while( scanf("%d",&a) != 1)
{
printf("错误\n");
scanf("%d",&a);
}
printf("\n%d",a);
}
我的目的是判断输入的是不是整形,如果是则跳过,如果不是整形,就报错并从新输入,结果我在控制台输入了一个字符之后就死循环了
å½scanfè¦è¯»åintåï¼å´è¯»åå°å符è¾å ¥æ¶ï¼å符ä¼ç»§ç»çå¨ç¼å²åºä¸ã
æ以è¿éè¦å¢å ä¸ä¸ªæ¸ é¤ç¼å²çè°ç¨
fflush æ¯ä¸ä¸ªæ¯è¾å¸¸ç¨çæ¹æ³ï¼ä¸è¿æäºå¹³å°ä¼ä¸æ¯æã
æ以æ´å¸¸ç¨çæ¯éè¿getcharæå¨æ¸ æ¥ä¸è¡è¾å ¥
#include <stdio.h>int main(void)
{
int a,b;
while( scanf("%d",&a) != 1)
{
printf("é误\n");
while(getchar()!='\n'); //读åå符 å°æ¢è¡ä¸ºæ¢ã
scanf("%d",&a);
}
printf("\n%d",a);
}
温馨提示:答案为网友推荐,仅供参考