Although they both seem to do the same thing, there is a subtle difference between them.
cout << endl : Inserts a new line and flushes the stream cout << "\n" : Only inserts a new line.
cout << endl;
can be said equivalent to
cout << ‘\n’ << flush;
So cout << “\n” seems performance wise better than cout << endl; unless flushing of stream is required.
Some other differences between endl and \n are:
- endl is manipulator while \n is character.
- endl doesn’t occupy any memory whereas \n is character so It occupy 1 byte memory.
- We cannot write endl in between double quotation while we can write \n in between double quotation like
cout<<"\n"; it is right but cout<<"endl"; is wrong.
- We can use \n both in C and C++ but, endl is only supported by C++ and not the C language.
This article is contributed by Akshat Saxena. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
- Why we should avoid using std::endl
- Difference between Virtual function and Pure virtual function in C++
- cin get() in C++ with Examples
- Difference between Increment and Decrement Operators
- Map of Vectors in C++ STL with Examples
- Problem in comparing Floating point numbers and how to compare them correctly?
- Height of Pyramid formed with given Rectangular Box
- exit(0) vs exit(1) in C/C++ with Examples
- Print the frequency of each character in Alphabetical order
- Predefined Macros in C with Examples
- How to create GUI in C programming using GTK Toolkit
- C++ program to print all Even and Odd numbers from 1 to N
- Reverse the content of a file and store it in another
- ctype.h(<cctype>) library in C/C++ with Examples