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