Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ความแตกต่างระหว่าง cerr และ cout streams ใน C++


ความแตกต่างพื้นฐาน

  • 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