ความแตกต่างพื้นฐาน
- cout: object ของ stdout stream (standard output)
- cerr: object ของ stderr stream (standard error)
stdout และ stderr เป็น stream ต่างกัน แม้ทั้งคู่จะส่งไปยัง console โดยค่าเริ่มต้น การ redirect (piping) หนึ่งไม่ส่งผลต่ออีกอัน
แนวทางปฏิบัติที่ดี (Best Practice)
- stdout (cout): ใช้สำหรับ program output จริงๆ
- stderr (cerr): ใช้สำหรับ error messages และ diagnostic info
เหตุผล: ถ้าผู้ใช้ redirect output ไปไฟล์ (program.exe > out.txt) ข้อความ error ใน cerr จะยังแสดงบนหน้าจอ ไปไม่ได้ในไฟล์ output