Computer >> Máy Tính >  >> Lập trình >> C ++

Luồng cin, cout và cerr trong C ++ là gì?


cin , cout, cerr, làm tắc nghẽn là các luồng xử lý đầu vào tiêu chuẩn và đầu ra tiêu chuẩn. Đây là các đối tượng luồng được xác định trong tệp tiêu đề iostream.

std :: cin là một đối tượng của lớp istream đại diện cho luồng đầu vào chuẩn được định hướng tới các ký tự hẹp (kiểu char). Nó tương ứng với dòng C. Luồng đầu vào tiêu chuẩn là một nguồn các ký tự được xác định bởi môi trường. Nó thường được giả định là đầu vào từ nguồn bên ngoài, chẳng hạn như bàn phím hoặc tệp.

std :: cout là một đối tượng của lớp ostream đại diện cho luồng đầu ra tiêu chuẩn hướng tới các ký tự hẹp (kiểu char). Nó tương ứng với dòng C. Luồng đầu ra tiêu chuẩn là đích mặc định của các ký tự được xác định bởi môi trường. Điểm đến này có thể được chia sẻ với nhiều đối tượng tiêu chuẩn hơn (chẳng hạn như cerr hoặc clog).

Đối tượng cerr điều khiển đầu ra tới bộ đệm luồng được liên kết với trình ghi đối tượng, được khai báo trong . Nó được sử dụng để xuất lỗi cho luồng đầu ra tiêu chuẩn.

Lưu ý - Tất cả các đối tượng được khai báo trong tiêu đề này đều có chung một thuộc tính đặc biệt - bạn có thể cho rằng chúng được tạo trước bất kỳ đối tượng tĩnh nào mà bạn xác định, trong một đơn vị dịch bao gồm . Tương tự, bạn có thể giả định rằng những đối tượng này không bị hủy trước khi hủy đối với bất kỳ đối tượng tĩnh nào như vậy mà bạn xác định. (Tuy nhiên, các luồng đầu ra được xóa trong khi kết thúc chương trình.) Do đó, bạn có thể đọc hoặc ghi vào các luồng tiêu chuẩn một cách an toàn trước khi khởi động chương trình và sau khi kết thúc chương trình.

Bạn có thể sử dụng các đối tượng luồng này 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;
}

Sau đó lưu chương trình này vào tệp hello.cpp. Cuối cùng điều hướng đến vị trí đã lưu của tệp này trong terminal / cmd và biên dịch nó bằng -

$ g++ hello.cpp

Chạy nó bằng -

$ ./a.out

Đầu ra

Nếu bạn cung cấp đầu vào 15, điều này sẽ cung cấp đầu ra -

15 An error message