當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C++ wclog用法及代碼示例

C++ 中的 wclog 對象是類 wostream 的對象。它與標準 C 錯誤輸出流 stderr 相關聯。

clog 和 wclog 的區別

阻塞用戶 char(narrow character) 作為字符類型。它可用於 ASCII 和 ANSI 字符。

對於國際化,我們需要不適合 char 的 Unicode 字符串。 wclog 使用 wchar_t(寬字符)並可用於 Unicode 字符。

wcerr 和 wclog 的區別

wclogwcerr 都與 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++ wclog。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。