Đố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
cerr
sử 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ự. wcerr
sử 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 cout
và wcout
hiể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 cerr
và wcerr
hiể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 wcerr
tượ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() == &wcout
tức là wcerr.tie()
trả về &wcout
có 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 wcerr
tượ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