这条while和fflush(stdin)效果一样么?

lunarfan 2008-09-15 09:54:30
while((ch = getchar())!= EOF && ch != '\n')
;
...全文
91 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
stephen_qi 2008-09-16
  • 打赏
  • 举报
回复
功能上是一样的!fflush(stdin)是将输入缓存清除。比如说
for(i=0;i<5;i++) 
{
scanf("%c ",array+i);
fflush(stdin);

}

程序中,如果没有fflush,则输入abcde[enter]时,程序自动将其赋值给array[0]~array[5],但是如果加了fflush后,程序只将a赋值给array[0]。
lbh2001 2008-09-16
  • 打赏
  • 举报
回复
是的
fflush(stdin);是M$的扩展,不具可移植性
ForestDB 2008-09-16
  • 打赏
  • 举报
回复
前阵子才知道的,貌似fflush作用于stdin是属于未定义的行为。

70,026

社区成员

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

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