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


C++ clog用法及代碼示例


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

clogcerr 都與 stderr 相關聯,但它與 cerr 的不同之處在於 clog 中的流被緩衝並且不會自動與 cout 綁定。

緩衝輸出比無緩衝輸出更有效。在緩衝輸出的情況下,所有輸出都保存到一個變量中並一次全部寫入磁盤。對於無緩衝的輸出,我們必須繼續寫入磁盤。

緩衝輸出不適用於嚴重錯誤。在係統崩潰的情況下,可能會出現輸出仍在緩衝區中並且沒有寫入磁盤並且無法檢索錯誤消息的情況。我們不能在係統崩潰的情況下丟失錯誤數據,因此即使速度較慢,我們也會繼續將嚴重錯誤寫入磁盤。

clog 通常用於記錄目的。對於非關鍵事件日誌記錄,效率更為重要,因此clog 優於 cerr。

堵塞聲明

extern ostream clog;

它在<iostream> 頭文件中定義。

clog 對象確保在第一次構造ios_base::Init 類型的對象期間或之前被初始化。 clog 未綁定到任何其他流。

clog中的"c"指的是"character",因此clog表示"character log"。

clog 對象與插入運算符 (<<) 一起使用,以顯示字符流。一般語法是:

clog << varName;

或者

clog << "Some String";

提取運算符可以與變量、字符串和操縱器的組合多次使用(如 endl ):

clog << var1 << "Some String" << var2 << endl;

示例:堵塞如何工作?

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
	char fileName[] = "data.txt";
	ifstream infile(fileName);
	
	if(infile)
		cout << infile.rdbuf();
		
	else
		clog << "Error while opening the file " << fileName << endl; 
      return 0;
}

在這個程序中,clog 用於流式傳輸日誌數據,因為這種情況下的錯誤對應用程序來說並不重要。因此使用 clog 的緩衝輸出更有效

運行程序時,輸出會是【如果打開文件出錯】:

Error while opening the file data.txt

相關用法


注:本文由純淨天空篩選整理自 C++ clog。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。