📅  最后修改于: 2023-12-03 15:29:57.521000             🧑  作者: Mango
在 C++ 中,除了常见的 cout 标准输出流对象外,还有一个常用的标准错误流对象 cerr(即 "console error")。与 cout 不同,cerr 的主要作用是输出程序运行过程中的错误信息。
与 cout 用法类似,可以使用插入运算符 << 来输出不同类型的数据类型。例如:
#include <iostream>
using namespace std;
int main ()
{
int num = 42;
cerr << "An error occurred. Error code: " << num << endl;
return 0;
}
以上代码会将 "An error occurred. Error code: 42" 输出到屏幕上的错误流中。注意,不同于 cout,cerr 默认不会换行,需要手动插入 endl 或者 '\n' 来进行换行操作。
cerr 除了可以用来输出错误信息外,与 cout 和它定义在同一个头文件 iostream
中的另一个标准流对象 clog 类似,都具有以下特点:
下面来看一个使用 cerr 输出错误信息的例子。假设有一个函数 double divide(double dividend, double divisor),用来计算两个 double 类型数值的商。当传入的除数 divisor 为零时,将发生错误。这时,可以使用 cerr 输出错误信息,并返回 0 来表示错误:
#include <iostream>
using namespace std;
double divide(double dividend, double divisor) {
if (divisor == 0.0) {
cerr << "Error: Division by zero." << endl;
return 0.0;
}
return dividend / divisor;
}
int main() {
double a = 10.0, b = 0.0;
double result;
result = divide(a, b);
cout << "Result is: " << result << endl;
return 0;
}
以上示例中,divide 函数在遇到除数为零的情况时使用 cerr 输出错误信息,然后返回 0。在 main 函数中,divide 函数的返回值将作为最终结果被 cout 输出。需要注意的是,如果 divide 函数未遇到除数为零的情况,其返回值将直接被输出,而无需使用 cerr 输出任何信息。