+ 2

What is the difference between \n and std::endl ?

is there any different performance advantage between \n and std::endl? if i want to output a large file like a briefing page through network , which one better?

14th May 2017, 12:31 AM
Setiawan Next
Setiawan Next - avatar
6 Answers
+ 5
@Setiawan Next Here is a test I just did, the results were: Test A time in ms: 790 Test B time in ms: 124 So in conclusion, \n really is much faster. #include <fstream> #include <ctime> #include <iostream> void funcA(unsigned len) { std::ofstream file("testA.txt"); time_t start = clock(); for (unsigned i = 0; i < len; i++) { file << "aaa" << std::endl; } std::cout << "Test A time in ms: " << clock() - start << "\n"; } void funcB(unsigned len) { std::ofstream file("testB.txt"); time_t start = clock(); for (unsigned i = 0; i < len; i++) { file << "aaa" << "\n"; } std::cout << "Test B time in ms: " << clock() - start << "\n"; } int main() { unsigned len = 100000; funcA(len); funcB(len); }
14th May 2017, 1:27 AM
aklex
aklex - avatar
+ 10
@Ulisses. Nice link. Provides additional info ontop of the answer provided aklex @Setiawan: Is this another question from your teacher? If so I feel he is slowly becoming mine also! Keep up the questions!
14th May 2017, 1:06 AM
jay
jay - avatar
+ 8
@aklex: wow. not even apples and oranges.. more like apples and bricks.. didnt think it would make that much difference.
14th May 2017, 1:32 AM
jay
jay - avatar
14th May 2017, 12:43 AM
Ulisses Cruz
Ulisses Cruz - avatar
+ 5
Endl flushes the stream and starts a new line \n just starts a new line Use \n unlesss you need to flush as it's much faster
14th May 2017, 12:56 AM
aklex
aklex - avatar
+ 2
@aklex Thank You very much, i know \n is faster but i can not prove it. Your explanation is really helpful. @jay no, i figure it out by myself. my teacher give me one quizz each time he meet me. and i don't meet him today, not yet.
14th May 2017, 1:51 AM
Setiawan Next
Setiawan Next - avatar