cout, cerr, clog的区别和windows下的重定向

1、cout,cerr,clog的区别《C++ Primer》第四版中解释为:标准库定义了 4 个 IO 对象。处理输入时使用命名为 cin(读作 see-in)的 istream 类型对象。这个对象也称为标准输入。处理输出时使用命名为 cout(读作 see-out)的 ostream 类型对象,这个对象也称为标准输出。标准库还定义了另外两个 ostream 对象,分别命名为 cerr 和
摘要由CSDN通过智能技术生成

1、cout,cerr,clog的区别

《C++ Primer》第四版中解释为:标准库定义了 4 个 IO 对象。处理输入时使用命名为 cin(读作 see-in)的 istream 类型对象。这个对象也称为标准输入。处理输出时使用命名为 cout(读作 see-out)的 ostream 类型对象,这个对象也称为标准输出。标准库还定义了另外两个 ostream 对象,分别命名为 cerr 和 clog(分别读作“see-err”和“see-log”)。cerr 对象又叫作标准错误,通常用来输出警告和错误信息给程序的使用者。而 clog 对象用于产生程序执行的一般信息。一般情况下,系统将这些对象与执行程序的窗口联系起来。这样,当我们从cin 读入时,数据从执行程序的窗口读入,当写到 cin、cerr 或 clog 时,输出写至同一窗口。运行程序时,大部分操作系统都提供了重定向输入或输出流的方法。利用重定向可以将这些流与所选择的文件联系起来。


查阅网上的一些资料,基本区别如下:

cerr(无缓冲)---------------标准错误,发送给它的内容立即被输出

clog(有缓冲)---------------标准错误,缓冲区满时输出
cout(有缓冲)---------------标准输出
三个都是ostream类定义的输出流对象,
cout是在终端显示器输出, cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据, 当向cout流插入一个endl, 不论缓冲区是否漫了,都立即输出流中所有数据, 然后插入一个换行符.
cerr流对象是标准错误流,指定为和显示器关联,和cout作用差不多

clog流也是标准错误流,作用和cerr一样,区别在于cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出。 

它们三个在windows平台下都可以重定向输出。


关于缓冲区:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值