Hỏi về cout << ... << flush và cout << ... << ends?

Mọi người cho em hỏi “cout << … << flush;” và “cout << … <<ends;” là như thế nào ạ, em vẫn chưa rõ lắm? Và nó khác gì so với cout << endl.

Em cảm ơn mọi người nhiều.

Cái này chỉ có tác dụng khi bạn ghi vào file, còn ghi ra màn hình thì bạn ghi đến đâu nó flush đến đấy.
Nếu bạn ghi vào file thì mặc định api chuẩn của c++ nó buffer dữ liệu, nó không ghi ra file ngay lập tức mà chỉ ghi khi đầy buffer hoặc khi bạn đóng file, hoặc khi bạn dùng 2 lệnh trên.
flush thì đơn giản là bắt nó ghi ra output ngay.
endl (không phải ends nhé) thì như trên nhưng trước đó thì nó ghi thêm một dấu xuống hàng.

3 Likes

std::endlstd::flush đều xuất ra màn hình ngay và luôn. Khi nhập std::cin thì do cin và cout bị tie nên cũng xuất ra màn hình ngay.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?