"\n" แสดงผลการขึ้นบรรทัดใหม่ (ในการแสดงเฉพาะแพลตฟอร์มที่เหมาะสม ดังนั้นจึงสร้าง "\r\n" บน Windows) แต่ std::endl ทำแบบเดียวกันและล้างสตรีม โดยปกติ คุณไม่จำเป็นต้องล้างสตรีมในทันทีและจะทำให้คุณเสียประสิทธิภาพ ดังนั้นโดยส่วนใหญ่ ไม่มีเหตุผลที่จะใช้ std::endl
เมื่อคุณต้องการล้างสตรีมด้วยตนเองเนื่องจากคุณคาดหวังให้ผู้ใช้มองเห็นผลลัพธ์ของคุณได้ในเวลาที่เหมาะสม (เช่น โดยไม่ชักช้า) คุณควรใช้ std::endl แทนการเขียน '\n' ไปยังสตรีมพี>