What is the difference between endl and \n in C++?

'\n' writes a new line character. std::endl writes it and also flushes the output buffer (forces the text to go out at once). The flush is slow when you print many lines.

#include <chrono>
#include <iostream>
#include <sstream>

int main() {
    std::ostringstream a, b;
    for (int i = 0; i < 3; i++) a << i << '\n';
    for (int i = 0; i < 3; i++) b << i << std::endl;
    std::cout << (a.str() == b.str()) << '\n';       // the same text
}
Output

1

Use '\n' in normal code. Use std::endl only when you really need the flush, for example before a crash log.


Learn more about the similar topics:
Tutorials
No Content Found.
Exercises & Assignments
No Content Found.
Interview Questions & Answers
No Content Found.