因此,Google对fflush(stdin)进行快速搜索以清除输入缓冲区会显示许多网站警告不要使用它。但这正是我的CS教授教课的方法。

使用fflush(stdin)有多糟糕?即使我的教授正在使用它,并且它似乎可以正常工作,我还是应该放弃使用它吗?

最佳答案

简单:这是未定义的行为,因为fflush是在输出流上调用的。这是C标准的摘录:


  int fflush(FILE * ostream);
  
  ostream指向输出流或
  更新流中
  未输入最近操作,
  fflush函数导致任何未写的
  该流要传送的数据
  到要编写的主机环境
  到文件;否则,行为
  未定义。


因此,这不是“有多严重”的问题。 fflush(stdin)是完全错误的,永远都不要使用它。

关于c - 使用fflush(stdin),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58109281/

10-11 21:04