C语言没有输入就直接跳过

halfsuccess 2012-09-06 10:57:40
C语言没有输入就直接跳过,是什么原因?谢谢。
...全文
1324 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2012-09-07
  • 打赏
  • 举报
回复
上次输入残留的 “ENTER”
qq120848369 2012-09-07
  • 打赏
  • 举报
回复
fflush受到实现影响,通常只能刷新输出状态的缓冲区,对输入状态的缓冲区无效。

请使用while ((ch = fgetc()) != EOF && ch != '\n')吞掉本行内的剩余数据以及换行符。
赵4老师 2012-09-07
  • 打赏
  • 举报
回复
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。
halfsuccess 2012-09-06
  • 打赏
  • 举报
回复
3楼说的对!
halfsuccess 2012-09-06
  • 打赏
  • 举报
回复
哈哈,解决了,原因是把输入字符窜当成了字符输入。
漫步者、 2012-09-06
  • 打赏
  • 举报
回复
fflush(shdin)/getchar();加在你的输入前面
qingtianweichong 2012-09-06
  • 打赏
  • 举报
回复
具体一点的代码看一下!估计是数据越界的问题!
Gloveing 2012-09-06
  • 打赏
  • 举报
回复
贴代码!谁知道呢?

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧