cout stdout स्ट्रीम का एक ऑब्जेक्ट है, जबकि cerr stderr स्ट्रीम का ऑब्जेक्ट है।
stdout और stderr अलग-अलग धाराएँ हैं, भले ही वे दोनों डिफ़ॉल्ट रूप से कंसोल आउटपुट को संदर्भित करते हैं। उनमें से एक को पुनर्निर्देशित (पाइपिंग) करना (उदा. program.exe>out.txt) दूसरे को प्रभावित नहीं करेगा।
आम तौर पर, वास्तविक प्रोग्राम आउटपुट के लिए stdout का उपयोग किया जाना चाहिए, जबकि सभी जानकारी और त्रुटि संदेशों को stderr पर मुद्रित किया जाना चाहिए, ताकि यदि उपयोगकर्ता आउटपुट को किसी फ़ाइल में पुनर्निर्देशित करता है, तो सूचना संदेश अभी भी उस पर मुद्रित होते हैं स्क्रीन और आउटपुट फ़ाइल के लिए नहीं।