What is meant by 'flushing the stream'?

六月ゝ 毕业季﹏ 提交于 2020-12-28 07:41:58

问题


I've read that '\n' is preferred over 'endl' for new line in c++ because 'endl' inserts new line and flushes the stream. Please tell me what is flushing the stream ?


回答1:


Flushing a stream ensures that all data that has been written to that stream is output, including clearing any that may have been buffered.

Some streams are buffered to aid performance, e.g. a stream writing to disk may buffer until the content reaches a block size.




回答2:


When you flush the stream you force contents of the output stream to the default output medium the OS uses. The term stream is an abstraction of a construct that allows you to send or receive an unknown number of bytes. In certain points in a program, the output stream is automatically flushed, flushing is not always necessary. To reduce overhead and improve performance, a stream buffers its contents and only periodically "flushes" it. Examples of streams are cin (std::cin) and cout (std::cout) which are the input and output streams. "std::cin" has a buffer to store input data whereas "std::cout's" buffer is used to store data that's going to be sent to screen.



来源:https://stackoverflow.com/questions/44843252/what-is-meant-by-flushing-the-stream

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!