C ++ tắc nghẽn - Thư viện chuẩn C ++

Đối tượng clog trong C ++ là một đối tượng của lớp ostream. Nó được liên kết với trình ghi dòng đầu ra lỗi C tiêu chuẩn.

clogcerr, cả hai đều được liên kết với stderr, nhưng nó khác cerrở chỗ các luồng trong clogđược lưu vào bộ đệm và không tự động được gắn với cout.

Đầu ra có đệm hiệu quả hơn đầu ra không có đệm. Trong trường hợp đầu ra có bộ đệm, tất cả đầu ra được lưu vào một biến và được ghi vào đĩa cùng một lúc. Đối với đầu ra không có bộ đệm, chúng ta phải tiếp tục ghi vào đĩa.

Đầu ra có bộ đệm không được ưu tiên cho các lỗi nghiêm trọng. Trong trường hợp hệ thống gặp sự cố, có thể xảy ra tình huống đầu ra vẫn ở trong bộ đệm và không được ghi vào đĩa và không thể truy xuất thông báo lỗi. Chúng tôi không thể để mất dữ liệu lỗi trong trường hợp hệ thống gặp sự cố, vì vậy chúng tôi tiếp tục ghi các lỗi nghiêm trọng vào đĩa mặc dù nó chậm hơn.

clogthường được sử dụng cho mục đích ghi nhật ký. Đối với ghi nhật ký sự kiện không quan trọng, hiệu quả là quan trọng hơn nên clogđược ưu tiên hơn để xác nhận.

khai báo tắc nghẽn

 tắc nghẽn ostream extern;

Nó được định nghĩa trong tệp tiêu đề "> tệp tiêu đề.

Đối clogtượng được đảm bảo được khởi tạo trong hoặc trước lần đầu tiên một đối tượng kiểu ios_base::Initđược xây dựng. clogkhông bị ràng buộc với bất kỳ luồng nào khác.

Chữ "c" trong clog dùng để chỉ "ký tự", do đó clog có nghĩa là "nhật ký ký tự".

Đối tượng clog được sử dụng cùng với toán tử chèn (<<) để hiển thị một dòng ký tự. Cú pháp chung là:

 làm tắc nghẽn << varName;

hoặc là

 clog << "Một số chuỗi";

Toán tử trích xuất có thể được sử dụng nhiều lần với sự kết hợp của các biến, chuỗi và trình thao tác (như endl):

 clog << var1 << "Một số Chuỗi" << var2 << endl;

Ví dụ: Cách thức hoạt động của tắc nghẽn?

 #include #include using namespace std; int main() ( char fileName() = "data.txt"; ifstream infile(fileName); if(infile) cout << infile.rdbuf(); else clog << "Error while opening the file " << fileName << endl; return 0; )

Trong chương trình này, tắc nghẽn được sử dụng để truyền dữ liệu nhật ký vì lỗi trong trường hợp này không quan trọng đối với ứng dụng. Vì vậy, sử dụng đầu ra đệm của tắc nghẽn hiệu quả hơn

Khi bạn chạy chương trình, đầu ra sẽ là (nếu có lỗi khi mở tệp):

 Lỗi khi mở tệp data.txt

thú vị bài viết...