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 ?
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.