简单来说,ostream中flush()的目的是什么

ump*_*mps 4 c++ iostream flush ostream

通过取自定义:http://www.cplusplus.com/reference/iostream/ostream/flush/,为什么存在的功能,目的是什么,你会使用它,因为这是不明确的.为什么不在每次写入流时调用flush()?

Mys*_*ial 25

很有可能,这个词flush恰好来自于你在现实生活中的冲击.厕所......

所以让我们尝试一下厕所比喻:

每次新的落入碗中时冲洗是非常耗时的并且完全浪费水.今天这是一个大问题,每个人都在努力保护环境.

那你做什么呢?你可以通过保存它来缓冲它并在最后冲洗一次.如果出于某种原因,当你没有完成时,你总是可以"过早地"在中间某处冲洗.


C++流(以及其他内容)的工作方式大致相同.为了减少开销并提高性能,流缓冲其内容并仅定期"刷新"它.这样做的缺点是你可能会遇到"延迟"行为,就像这个问题:为什么printf在调用后不会刷新,除非换行符在格式字符串中?

flush()就是为了什么.允许您覆盖缓冲.

  • 我希望我不需要用图片和基准来补充这一点. (19认同)