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

Đối tượng wcerr 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.

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

cerrsử 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ự. wcerrsử dụng wchar_t(ký tự rộng) và sử dụng được cho các ký tự Unicode.

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

Các lập trình viên C ++ mới bắt đầu sử dụng coutwcouthiển thị lỗi bằng cách sử dụng đầu ra chuẩn để gỡ lỗi chương trình của họ, nhưng việc sử dụng cerrwcerrhiển thị lỗi luôn là một phương pháp hay .

Điều này là do thay vì hiển thị luồng lỗi ra màn hình, sau đó bạn có thể thay đổi luồng lỗi để ghi lỗi vào tệp.

tuyên bố wcerr

 extern wostream wcerr; 

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

Đối wcerrtượ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. Sau khi wcerrđối tượng được xây dựng, biểu thức (wcerr.flags & unitbuf)là khác 0, có nghĩa là bất kỳ đầu ra nào được gửi đến các đối tượng luồng này ngay lập tức được chuyển đến hệ điều hành. Cũng wcerr.tie() == &wcouttức là wcerr.tie()trả về &wcoutcó nghĩa wcout.flush()là được thực hiện trước khi bất kỳ hoạt động đầu ra nào được bật wcerr.

"Wc" trong wcerr đề cập đến "ký tự rộng" và "err" có nghĩa là "lỗi", do đó wcerr có nghĩa là "lỗi ký tự rộng". Đối wcerrtượng được sử dụng cùng với toán tử chèn (<<) để hiển thị dòng ký tự. Cú pháp chung là:

 wcerr << varName;

hoặc là

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

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

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

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

Khi bạn chạy chương trình, kết quả đầu ra sẽ là: (nếu không thể mở tệp)

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

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