通过取自定义: http://www.cplusplus.com/reference/iostream/ostream/flush/ ,为什么存在的功能,目的是什么,你会使用它,因为这是不明确的。 为什么不调用flush(),您的每一次写操作,将流?
Answer 1:
在所有的可能性,这个词flush
来自正是你在现实生活中刷新的。 一个厕所......
所以让我们尝试厕所的比喻:
法拉盛每一个新掉入碗内时间是非常耗时和水完全是浪费。 这是一个大问题,今天的每个人都在努力成为环保。
所以,你会怎么做呢? 您可以通过保存这一切,并在年底冲洗一次缓冲它。 如果因任何原因,你总是可以“提前”在中间的某个地方冲洗,当你没有这样做。
C ++流(除其他事项外)的工作几乎相同的方式。 为了减少开销,提高性能,流缓冲的内容,而仅定期“刷新”了。 这样做的回拉的是,你可能会在这个问题上“延迟”的行为,如: 为什么不printf的调用后,除非换行符是格式字符串冲洗?
所以,这就是flush()
是。 为了使您能够覆盖缓冲。
Answer 2:
每次硬盘驱动器上的文件写入一个字符是低效的。 通过网络发送的数据包的每个字符是低效的。 因此流经常缓存。 flush()
仅仅是一个以数据流传输时缓存必须冲洗和东西应该真正发送或写入时“手动”控制方式。
文章来源: In simple terms, what is the purpose of flush() in ostream