C++ cerr 对象
定义和用法
cerr
对象用于输出错误消息。其行为与 cout
相同,但可以定向到不同的目的地,如错误日志文件。cerr
和 clog
总是写入相同的目的地。
有关更详细的用法,请参阅 <iostream>
中的 cout
对象。
与 cout
和 clog
不同,cerr
是不带缓冲的。带缓冲的输出会暂时将输出存储在变量中,直到满足某些条件时才写入目的地。带缓冲的输出更高效,因为它们对文件执行的写操作更少。cerr
是不带缓冲的,以便在程序崩溃之前将错误消息写入文件。
注意:cerr
对象在 <iostream>
头文件中定义。
实例
例子 1
使用 cerr
对象输出错误消息:
int x = 5; int y = 0; if(y == 0) { cerr << "除零错误: " << x << " / " << y << "\n"; } else { cout << (x / y); }
例子 2
将 cerr
定向到文件而不是控制台:
#include <iostream> #include <fstream> using namespace std; int main() { int x = 5; int y = 0; // 将 "error.log" 设置为错误消息的输出文件 ofstream log("error.log"); cerr.rdbuf(log.rdbuf()); // 写入错误消息 if(y == 0) { cerr << "除零错误: " << x << " / " << y << "\n"; } else { cout << (x / y); } // 关闭文件 log.close(); return 0; }