cin, cout, cerr, và clog là các luồng xử lý đầu vào chuẩn và đầu ra chuẩn. Đây là các đối tượng luồng được định nghĩa trong header iostream.
std::cin là đối tượng lớp istream đại diện cho luồng nhập chuẩn hướng về ký tự hẹp (kiểu char). Tương ứng với luồng C stdin. Luồng nhập chuẩn là nguồn ký tự do môi trường xác định. Thường giả định là nhập từ nguồn bên ngoài như bàn phím hoặc file.
std::cout là đối tượng lớp ostream đại diện cho luồng xuất chuẩn hướng về ký tự hẹp (kiểu char). Tương ứng với luồng C stdout. Luồng xuất chuẩn là đích mặc định của ký tự do môi trường xác định. Đích này có thể chia sẻ với nhiều đối tượng chuẩn khác (như cerr hoặc clog).
Đối tượng cerr kiểm soát đầu ra đến bộ đệm luồng liên kết với đối tượng stderr, khai báo trong <cstdio>. Dùng để xuất lỗi ra luồng xuất chuẩn.
Lưu ý – Tất cả đối tượng khai báo trong header này chia sẻ thuộc tính đặc biệt: bạn có thể giả định chúng được xây dựng trước bất kỳ đối tượng static nào bạn định nghĩa, trong đơn vị dịch (translation unit) include <iostream>. Tương tự, bạn có thể giả định các đối tượng này không bị hủy trước destructor của các đối tượng static đó. (Tuy nhiên, các luồng xuất được flush khi kết thúc chương trình.) Do đó, bạn có thể an toàn đọc/ghi các luồng chuẩn trước khi chương trình bắt đầu và sau khi kết thúc.
Bạn có thể dùng các đối tượng luồng như sau:
Ví dụ
#include <iostream>
int main() {
int my_int;
std::cin >> my_int;
std::cout << my_int;
std::cerr << "An error message";
return 0;
}
Lưu thành hello.cpp. Điều hướng đến thư mục file trong terminal/cmd và biên dịch:
$ g++ hello.cpp
Chạy:
$ ./a.out
Kết quả
Nếu nhập 15, kết quả:
15 An error message