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


C++ cerr用法及代碼示例


在本教程中,我們將借助示例了解 C++ cerr() 函數。

C++ 中的cerr 對象用於打印錯誤消息。它在iostream 頭文件中定義。

示例

#include <iostream>
using namespace std;

int main() {
  // print error message
  cerr << "Error!!";
  return 0;
}

// Output: Error!!

cerr 語法

用法:

cerr << var_name;

或者

cerr << "Some String";

這裏,

  • << 是插入運算符
  • var_name 通常是變量,但也可以是數組元素或容器元素,如向量、列表、Map等。

帶有插入運算符的 cerr

"c"cerr"character""err"方法"error".因此cerr方法"character error".

cerr 對象與插入運算符<< 一起使用,以顯示錯誤消息。例如,

int var1 = 25, var2 = 50;

cerr << var1;
cerr << "Some String";
cerr << var2;

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

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

雖然我們可以使用cout 來顯示錯誤以調試我們的程序,但使用cerr 來顯示錯誤始終是一個好習慣。

這是因為我們可以稍後更改錯誤流以將錯誤寫入文件,而不是將錯誤流顯示到屏幕上。

示例:C++ cerr

在這個程序中,我們將嘗試讀取文件 data.txt 的內容。讓我們假設這個文件不存在,或者包含一些阻止它打開的錯誤。

在這裏,我們將使用cerr 對象來通知用戶這個錯誤。

#include <iostream>
#include <fstream>
using namespace std;

int main() {
  string file_name = "data.txt";
  ifstream my_file(file_name);
	
  if(my_file) {
    cout << my_file.rdbuf();
  }
  else {
    // print error message
    cerr << "Error while opening the file " << file_name;	
  }

  return 0;
}

輸出

Error while opening the file data.txt

cerr 原型

iostream 頭文件中定義的cerr 原型為:

extern ostream cerr;

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

cerr 對象確保在第一次構造ios_base::Init 類型的對象期間或之前被初始化。

構造 cerr 對象後,表達式 (cerr.flags & unitbuf ) 不為零,這意味著發送到這些流對象的任何輸出都會立即刷新到操作係統。

另外 cerr.tie() == &cerrcerr.tie() 返回 &cerr 這意味著 cerr.flush()cerr 上的任何輸出操作之前執行。

相關用法


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