"\n" एक नई लाइन को आउटपुट करता है (उपयुक्त प्लेटफॉर्म-विशिष्ट प्रतिनिधित्व में, इसलिए यह विंडोज़ पर "\r\n" उत्पन्न करता है), लेकिन std::endl करता है वही और धारा को फ्लश करता है। आम तौर पर, आपको तुरंत स्ट्रीम को फ्लश करने की आवश्यकता नहीं होती है और इससे आपको केवल प्रदर्शन खर्च करना पड़ेगा, इसलिए, अधिकांश भाग के लिए, std::endl का उपयोग करने का कोई कारण नहीं है।
जब आप स्ट्रीम को मैन्युअल रूप से फ़्लश करना चाहते हैं -- उदा. क्योंकि आप उम्मीद करते हैं कि आपका आउटपुट समय पर उपयोगकर्ता को दिखाई देगा -- आपको स्ट्रीम में '\n' लिखने के बजाय std::endl का उपयोग करना चाहिए (चाहे एक पृथक वर्ण या स्ट्रिंग के भाग के रूप में)।पी>