【C语言】——C语言中scanf函数在循环中的错误处理实例代码

#include <stdio.h>
int main(void)
{
 int a = 0;
 int ret = 0;
 char c = 0;
 //循环输入数据
 while(1)
 {
  printf("(press ctrl + d to quit!)please input a value:");
  ret = scanf("%d",&a);
  //检测用户是否按下ctrl+d
  if(feof(stdin) || ferror(stdin))
  {
   printf("ok,you choose to exit.\n");
   break;
  }
   //清空输入缓冲区的内容,通过清空缓冲区,可以再循环中一直输入数据,如果不清空,产生垃圾数据后会出现死循环
  while(c = getchar() != '\n' && c != EOF)
  {;}
  //判断输入类型
  if(ret != 1)
  {
   printf("input wrong type,break!\n");
   continute;
  }
  printf("the ret is %d,and the a is %d\n",ret,a);
 }
 return;
}

 

 

 

你可能感兴趣的:(c,input,语言,include)