📜  C++ cerr

📅  最后修改于: 2020-09-25 14:34:56             🧑  作者: Mango

C++中的cerr对象是ostream类的对象。它与标准C错误输出流stderr相关联。

cer声明

extern ostream cerr;

它在头文件中定义。

确保在第一次构造ios_base::Init类型的对象期间或之前初始化cerr对象。构造cerr对象后,表达式( cerr.flagsunitbuf )不为零,这意味着发送到这些流对象的任何输出都将立即刷新到操作系统。另外cerr.tie() == &coutcerr.tie()返回&cout ,这意味着cout.flush()在对cerr进行任何输出操作之前cout.flush()执行。

cerr的“ c”表示“字符”,而“ err”表示“错误”,因此cerr表示“字符错误”。

cerr对象与插入运算符 (<<)一起使用,以显示字符流。通用语法为:

cerr << varName;

要么

cerr << "Some String";

提取运算符可以与变量, 字符串和操纵符 (如endl)结合使用多次:

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

初学者C++程序员使用cout通过标准输出来显示错误,以调试程序,但是使用cerr显示错误始终是一种好习惯。

这是因为您以后可以更改错误流以将错误写入文件,而不是将错误流显示在屏幕上。

示例:cerr如何工作?

#include 
#include 

using namespace std;

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

运行该程序时,输出为:[如果无法打开文件]

Error while opening the file data.txt