问题
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