开发者社区> 问答> 正文

既然 fflush() 不能, 那么怎样才能清除输入呢?

既然 fflush() 不能, 那么怎样才能清除输入呢?

展开
收起
游客py5kcp7dd6tu6 2022-03-29 21:19:23 436 0
1 条回答
写回答
取消 提交回答
  • 这取决于你要做什么。如果你希望丢掉调用 scanf() (参见问题 12.16 - 12.17) 之后所剩下的换行符和未预知的输入, 你可能需要重写你的 scanf() 或者换掉它, 参见问题 12.18。或者你可以用下边这样 的代码吃掉一行中多余的字符 while((c = getchar()) != '\n' && c != EOF) /* 丢弃 */ ; 你也可以使用 curses 的 flushinp() 函数。 没有什么标准的办法可以丢弃标准输入流的未读取字符, 即使有, 那也不够, 因为未读取字符也可能来自其它的操作系统级的输入缓冲区。如果你希望严格 丢弃多输入的字符 (可能是预测发出临界提示), 你可能需要使用系统相关的 技术;

    2022-03-29 21:19:46
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载