当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。