设为首页 加入收藏

TOP

C语言:scanf()语句错误读取(一)
2014-07-19 22:52:39 来源: 作者: 【 】 浏览:176
Tags:语言 :scanf 语句 错误 读取

  在上一星期的文章中,每一次遇到功能选择时,总是会以输入选项所代表的数字表示,而在让一个大神帮忙看看时,发现一个问题:当输入不是数字时scanf()语句将保持不读取状态,当程序运行到这里时scanf()将会维持上一次读取数,不读取新内容,检查了好久都不知道问题,当时大神发话,这绝对是scanf()读取出问题了,应当有一个函数可以清空缓存还是什么的,解决这个问题,结果回来一查,立即对大神佩服的五体投地。

  以这个程序为例:

  #include

  int main()

  {

  int array ;

  int temp;

  int i,j;

  printf("input ten numbers(between -32768 and +32767):\n");

  for(i=0;i<10;i++)

  {

  scanf("%d",&temp);

  if(temp<-32768 || temp>32767)

  {

  i--;

  printf("number must between -32768 and +32767\ntry again:\n");

  continue;

  }

  else

  {

  array[i]=temp;

  }

  }

  printf("your numbers:\n");

  for(j=0;j<10;j++)

  {

  printf(" %d ",array[j]);

  }

  printf("\ngod bye\n");

  return 0;

  }

  如果在开始输入时输入一个字母将进入死循环。

  输入:q

  输出:

  如果在输入中输入一个字母scanf将会自动读取上一次输入的值,不能再次输入。

   

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++构造函数:函数返回值 下一篇time_t 和 tm 结..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言指针从入门到基 (2025-12-26 05:21:36)
·【C语言指针初阶】C (2025-12-26 05:21:33)
·C语言指针的定义和使 (2025-12-26 05:21:31)
·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)