📅  最后修改于: 2020-09-25 14:34:56             🧑  作者: Mango
extern ostream cerr;
它在
确保在第一次构造ios_base::Init
类型的对象期间或之前初始化cerr
对象。构造cerr
对象后,表达式( cerr.flags
& unitbuf
)不为零,这意味着发送到这些流对象的任何输出都将立即刷新到操作系统。另外cerr.tie()
== &cout
即cerr.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
显示错误始终是一种好习惯。
这是因为您以后可以更改错误流以将错误写入文件,而不是将错误流显示在屏幕上。
#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