在C++中,cerr
是标准库中的一个标准错误流对象,它与cout
类似,都是输出流,但是cerr
用于输出错误信息。cerr
是std::ostream
类的一个实例,与cout
不同的是,cerr
不会刷新其关联的缓冲区,这意味着输出通常会立即显示,这对于错误消息来说是很重要的,因为它们通常需要立即被注意到。
以下是一些关于cerr
的要点:
• 错误信息:cerr
通常用于输出程序运行时的错误信息。
• 不缓冲:与cout
不同,cerr
不会缓冲输出,这意味着写入cerr
的内容会立即输出到标准错误设备(通常是终端或控制台)。
• 格式化:cerr
支持与cout
相同的格式化操作,包括使用std::setw
、std::setprecision
等操作符。
• 同步:cerr
与cout
是同步的,这意味着如果你同时使用cout
和cerr
输出,它们的输出顺序是未定义的,除非使用std::flush
或文件结束符std::endl
来刷新流。
• 结束符:cerr
也支持使用std::endl
来输出换行符并刷新缓冲区,或者使用std::flush
仅刷新缓冲区。
下面是一个简单的使用cerr
的例子:
#include <iostream>
#include <bits/stdc++.h>int main() {// 正常信息输出std::cout << "This is a normal message." << std::endl;// 错误信息输出std::cerr << "This is an error message." << std::endl;return 0;
}
在这个例子中,正常信息通过cout
输出,而错误信息通过cerr
输出。由于cerr
不会缓冲,错误信息会立即显示在控制台上。