cout là một đối tượng của luồng stdout, trong khi cerr là một đối tượng của luồng stderr.
stdout và stderr là các luồng khác nhau, mặc dù cả hai đều tham chiếu đến đầu ra bảng điều khiển theo mặc định. Việc chuyển hướng (đường ống) một trong số chúng (ví dụ:program.exe> out.txt) sẽ không ảnh hưởng đến cái còn lại.
Nói chung, stdout nên được sử dụng cho đầu ra chương trình thực tế, trong khi tất cả thông tin và thông báo lỗi phải được in ra stderr, để nếu người dùng chuyển hướng đầu ra đến một tệp, thông báo thông tin vẫn được in trên màn hình chứ không phải tệp đầu ra.