首页 > 编程语言 >C++中的cerr和clog

C++中的cerr和clog

时间:2024-07-02 09:31:12浏览次数:18  
标签:输出 clog cout 对象 缓冲 C++ cerr

标准错误流(cerr)
预定义的对象cerr是iostream类的一个实例。cerr对象附属到标准错误设备,通常也是显示屏,
但是cerr对象是非缓冲的,且每个流插入到cerr都会立即输出。
cerr也是与流插入运算符<<结合使用的,如下所示:
和cout用法一样 不过区别就在是否缓冲的问题。cerr是不缓冲的有什么马上输出。而cout是会缓冲。
但是我们平常简单的输出是看不出来的。

点击查看代码
int main()
{
	char str[] = "Unable to read ..";
	cerr << "Error messagte:" << str << endl;

}
标准日志流(clog) 预定义的对象clog是iostream类的一个实例。clog对象附属到标准错误设备,通常也是显示屏,但是clog对象是缓冲的。 这意味着每个流插入到clog都会先存储在缓冲区,直到缓冲填满或者缓冲刷新时才会输出。 clog也是与流插入运算符<<结合使用的,如下所示:
点击查看代码
int main()
{
	char str[] = "Unable to read ..";
	clog << "clog Error messagte:" << str << endl;

}
通过这些小实例,我们无法区分cout、cerr和clog的差异,但在编写和执行大型程序时,它们之间的差异就变得非常明显。 所以良好的编程实践告诉我们,使用cerr流来显示错误消息,而其他的日志消息则使用clog流来输出。

标签:输出,clog,cout,对象,缓冲,C++,cerr
From: https://www.cnblogs.com/SunshineWeather/p/18279276

相关文章

  • C++文件输入输出
    参考博文:https://blog.csdn.net/houbincarson/article/details/136327765/*文件输入输出fstream有三个文件流类:std::ifstream:用于从文件中读取数据的输入流对象。std::ofstream:用于向文件中写入数据的输出流对象。std::fstream:用于读写文件的输入输出流对象。*/#include<f......
  • 2024华为OD机试真题- 电脑病毒感染-(C++/Python)-C卷D卷-200分
     2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++)      题目描述一个局域网内有很多台电脑,分别标注为0~N-1的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。......
  • C++(函数指针)
    目录基本语法示例常见用途注意事项函数指针是指向函数的指针,它保存了函数的地址,可以通过它调用指向的函数。函数指针在C++中具有多种用途,例如回调函数、动态函数调用以及实现多态等。基本语法函数指针的声明语法如下:返回类型(*指针名)(参数列表);示例声明和定义一个函数......
  • C++中的引用(Reference)
    1.引用(Reference)在C++中,引用(Reference)是一个变量的别名.它允许你通过不同的名字访问同一个变量.与指针不同,引用在定义时必须被初始化,并且一旦绑定到某个变量,之后不能更改引用的绑定对象.引用的语法引用(Reference)是C++中的一种重要特性,提供了对现有变量的另一种名称或别......
  • 0基础学C++ | 第11天 | 基础知识 | 引用
    目录引用的基本使用 引用的注意事项 引用做函数参数 引用做函数的返回值引用的本质引用的基本使用作用:引用就是给变量起别名,它不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。我的理解就是......
  • 如何使用C++进行文件读写操作
    在C++中,我们可以使用标准库中的 <fstream>(文件流)来进行文件的读写操作。以下是一些基本的文件读写操作的示例。读取文件cpp复制代码#include<fstream>#include<iostream>#include<string>intmain(){std::ifstreamfile("example.txt");//打开文件以进行读取操......
  • C++11中如何创建线程
    在C++11中,创建线程变得非常简单和标准化,因为C++11引入了线程库(<thread>)。这个库提供了std::thread类,使得创建和管理线程变得更加直接和方便。以下是如何在C++11中创建线程的基本步骤:包含线程库:首先,你需要包含<thread>头文件,以便使用std::thread。定义线程将要执行的函数或可......
  • C++文件系统操作1 - 跨平台实现文件的创建和删除
    1.关键词2.fileutil.h3.fileutil.cpp4.filetype.h5.filesystem_win.cpp6.filesystem_unix.cpp7.源码地址1.关键词C++文件系统操作创建文件删除文件创建软连接刪除软连接跨平台2.fileutil.h#pragmaonce#include<string>#include<cstdio>#includ......
  • 深入解析C++标准库中的std::vector容器
    1.底层实现std::vector 是C++标准库中的一个模版类,用于动态数组。它的底层实现可以理解为一个动态分配的连续内存块,当需要更多空间时,内存会自动扩展。内存分配:vector 使用一块连续的内存存储元素。当插入新元素导致容量不足时,vector 会分配一块更大的内存(通常是当前容量......
  • C++仿SKData实现C原生指针管理
    template<typenameT>classHBData{public:HBData(T*other_data,size_tother_size,boolrelease):data(other_data),size(other_size),isDeepCopy(release){}HBData(constHBData&other){if(isDeepCopy&&data)......