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 also in C++ but we can't use endl in 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
- Minimum cells to be flipped to get a 2*2 submatrix with equal elements
- Nested Loops in C++ with Examples
- Slack Bytes in Structures : Explained with Example
- _Find_first() function in C++ bitset with Examples
- _Find_next() function in C++ bitset with Examples
- Left-Right traversal of all the levels of N-ary tree
- Difference between Iterators and Pointers in C/C++ with Examples
- ostream::seekp(pos) method in C++ with Exmaples
- Default Methods in C++ with Examples
- C program to count number of vowels and consonants in a String
- Nested Loops in C with Examples
- C++ Tutorial
- Hello World Program : First program while learning Programming