C++ 中的 wclog 對象是類 wostream 的對象。它與標準 C 錯誤輸出流 stderr 相關聯。
clog 和 wclog 的區別
阻塞用戶 char(narrow character) 作為字符類型。它可用於 ASCII 和 ANSI 字符。
對於國際化,我們需要不適合 char 的 Unicode 字符串。 wclog 使用 wchar_t(寬字符)並可用於 Unicode 字符。
wcerr 和 wclog 的區別
wclog
和 wcerr
都與 stderr
相關聯,但它與 wcerr
的不同之處在於 wclog
中的流被緩衝並且不會自動與 wcout
綁定。
緩衝輸出比無緩衝輸出更有效。在緩衝輸出的情況下,所有輸出都保存到一個變量中並一次全部寫入磁盤。對於無緩衝的輸出,我們必須繼續寫入磁盤。
緩衝輸出不適用於嚴重錯誤。在係統崩潰的情況下,可能會出現輸出仍在緩衝區中並且沒有寫入磁盤並且無法檢索錯誤消息的情況。我們不能在係統崩潰的情況下丟失錯誤數據,因此即使速度較慢,我們也會繼續將嚴重錯誤寫入磁盤。
wclog
通常用於記錄目的。對於非關鍵事件日誌記錄,效率更為重要,因此 wclog 優於 wcerr
。
wclog 聲明
extern ostream wclog;
它在<iostream> 頭文件中定義。
wclog
對象確保在第一次構造ios_base::Init
類型的對象期間或之前被初始化。 wclog
未綁定到任何其他流。
wclog
中的"wc" 指的是"wide character",因此wclog
表示“寬字符日誌”。這
wclog
對象與插入運算符 (
wclog << varName;
或者
wclog << "Some String";
提取運算符可以與變量、字符串和操縱器的組合多次使用(如 endl
):
wclog << var1 << "Some String" << var2 << endl;
示例:wclog 是如何工作的?
#include <iostream>
#include <fstream>
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 <<endl;
return 0;
}
運行程序時,可能的輸出將是[如果打開文件時出錯]:
Error while opening the file data.txt
相關用法
- C++ wcstold()用法及代碼示例
- C++ wctrans()用法及代碼示例
- C++ wcerr用法及代碼示例
- C++ wcsftime()用法及代碼示例
- C++ wcstod()用法及代碼示例
- C++ wcscspn()用法及代碼示例
- C++ wcsncmp()用法及代碼示例
- C++ wcin用法及代碼示例
- C++ wcstok()用法及代碼示例
- C++ wcsstr()用法及代碼示例
- C++ wcsrchr()用法及代碼示例
- C++ wctob()用法及代碼示例
- C++ wcsncpy()用法及代碼示例
- C++ wcslen()用法及代碼示例
- C++ wcsspn()用法及代碼示例
- C++ wcschr()用法及代碼示例
- C++ wctomb()用法及代碼示例
- C++ wcstof()用法及代碼示例
- C++ wcstol()用法及代碼示例
- C++ wcspbrk()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ wclog。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。