The standard stream object cerr and its matching wide-character version, wcerr, are unbuffered. This means that they are automatically flushed after each operation; they do not buffer data. This feature is particularly useful for error reporting because it ensures that if the program crashes due to an error, the stream’s data isn’t lost. Note that because these streams are unbuffered, using the endl manipulator in this case is never needed:
# include using std::cerr;if (failed){ cerr << "call system administrator"; // no endl needed}