C ++ wclog - Thư viện chuẩn C ++

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

Sự khác biệt giữa clog và wclog

làm tắc nghẽn người dùng char (ký tự hẹp) làm kiểu ký tự. Nó có thể được sử dụng cho các ký tự ASCII và ANSI.

Để quốc tế hóa, chúng tôi cần các chuỗi Unicode không phù hợp với ký tự. wclog sử dụng wchar_t (ký tự rộng) và có thể sử dụng cho các ký tự Unicode.

Sự khác biệt giữa wcerr và wclog

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

Đầ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.

wclogthườ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ả quan trọng hơn nên wclog được ưu tiên hơn wcerr.

khai báo wclog

 extern ostream wclog;

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

Đối wclogtượ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. wclogkhông bị ràng buộc với bất kỳ luồng nào khác.

"Wc" trong wclogđề cập đến "ký tự rộng", do đó wclogcó nghĩa là "nhật ký ký tự rộng". Các

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

 wclog << varName;

hoặc là

 wclog << "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):

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

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

 #include #include using namespace std; int main() ( char fileName() = "data.txt"; wifstream infile(fileName); if(infile) wcout << infile.rdbuf(); else wclog << L"Error while opening the file " << fileName < 

When you run the program, a possible output will be (if there is error in opening the file):

 Error while opening the file data.txt

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