C++ 中的 clog 对象是类 ostream 的对象。它与标准 C 错误输出流 stderr 相关联。
clog
和 cerr
都与 stderr
相关联,但它与 cerr
的不同之处在于 clog
中的流被缓冲并且不会自动与 cout
绑定。
缓冲输出比无缓冲输出更有效。在缓冲输出的情况下,所有输出都保存到一个变量中并一次全部写入磁盘。对于无缓冲的输出,我们必须继续写入磁盘。
缓冲输出不适用于严重错误。在系统崩溃的情况下,可能会出现输出仍在缓冲区中并且没有写入磁盘并且无法检索错误消息的情况。我们不能在系统崩溃的情况下丢失错误数据,因此即使速度较慢,我们也会继续将严重错误写入磁盘。
clog
通常用于记录目的。对于非关键事件日志记录,效率更为重要,因此clog
优于 cerr。
堵塞声明
extern ostream clog;
它在<iostream> 头文件中定义。
clog
对象确保在第一次构造ios_base::Init
类型的对象期间或之前被初始化。 clog
未绑定到任何其他流。
clog中的"c"指的是"character",因此clog表示"character log"。
clog 对象与插入运算符 (<<) 一起使用,以显示字符流。一般语法是:
clog << varName;
或者
clog << "Some String";
提取运算符可以与变量、字符串和操纵器的组合多次使用(如 endl
):
clog << var1 << "Some String" << var2 << endl;
示例:堵塞如何工作?
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char fileName[] = "data.txt";
ifstream infile(fileName);
if(infile)
cout << infile.rdbuf();
else
clog << "Error while opening the file " << fileName << endl;
return 0;
}
在这个程序中,clog 用于流式传输日志数据,因为这种情况下的错误对应用程序来说并不重要。因此使用 clog 的缓冲输出更有效
运行程序时,输出会是【如果打开文件出错】:
Error while opening the file data.txt
相关用法
- C++ clock()用法及代码示例
- C++ clearerr()用法及代码示例
- C++ count()用法及代码示例
- C++ copy_n()用法及代码示例
- C++ complex cosh()用法及代码示例
- C++ copy()用法及代码示例
- C++ cbrt()用法及代码示例
- C++ c32rtomb()用法及代码示例
- C++ count_if()用法及代码示例
- C++ c16rtomb()用法及代码示例
- C++ cin用法及代码示例
- C++ ctime()用法及代码示例
- C++ copy_backward()用法及代码示例
- C++ cosh()用法及代码示例
- C++ cout用法及代码示例
- C++ calloc()用法及代码示例
- C++ cos()用法及代码示例
- C++ copysign()用法及代码示例
- C++ cmath abs()用法及代码示例
- C++ copy_if()用法及代码示例
注:本文由纯净天空筛选整理自 C++ clog。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。