cout和cerr的区别
问题:
c++中输出通常信息的函数为cout,比如:std::cout << "Hello world";
在异常处理机制中则使用cerr来输出错误信息,比如:std::cerr << "Error: too many arguments\n";
那么,cout和cerr的区别是什么呢?
解决办法:
1. 摘录一段《C++ Primer》第五版P319中关于cout与cerr的区别的描述:
和cout一样,cerr也是一个ostream对象。
它们之间的区别在于:
重定向操作只影响cout,而不影响cerr;
cerr对象仅用于错误消息。
因此,如果将程序输出重定向到文件,并且发生了错误,则屏幕上仍然会出现错误消息。
在UNIX系统中,可以分别对cout和cerr进行重定向,命令行操作符>用于对cout进行重定向,操作符2>对cerr进行重定向。
因为,系统的SHELL里一般约定1为正确流,2为错误流。而1是作为缺省值使用可以省略不写。
2. 示例代码:
# test_cerr.cpp
#include <iostream>using namespace std;int main() {cout << "hello world---cout" << endl ;cerr << "hello world---cerr" << endl ;return 0;
}
编译test_cerr.cpp:
g++ test_cerr.cpp -o test_cerr
运行不同的重定向命令:
u1204@u1204-zhw:~/wrk/tmp/cpp_src/cpp_exer$ ./test_cerr 2> test_cerr.txt
hello world---cout
u1204@u1204-zhw:~/wrk/tmp/cpp_src/cpp_exer$ ./test_cerr > test_cout.txt
hello world---cerr
u1204@u1204-zhw:~/wrk/tmp/cpp_src/cpp_exer$ cat ./test_cerr.txt
hello world---cerr
u1204@u1204-zhw:~/wrk/tmp/cpp_src/cpp_exer$ cat ./test_cout.txt
hello world---cout
u1204@u1204-zhw:~/wrk/tmp/cpp_src/cpp_exer$
cout和cerr的区别相关推荐
- C++中cout和cerr的区别?
之前一直在用,但就是没在意两者到底有啥却别,今天又想到这个问题,总结下吧(以下的内容均是本人从网上查阅资料看来整理的,暂时还没有查阅官方资料,不保证准确,欢迎讨论) 其实大家平常常会用的主要有三个:c ...
- C++中cout和cerr的区别
标准IO库定义的其中3个IO对象: 一个istream类型对象:cin 两个ostream对象:cout,cerr cin:读取标准输入的istream对象,对应于标准输入流(关联到标准输入设备,通常 ...
- cout 和cerr的区别
总结了一下,主要有几点,欢迎指正. 1.cout对应于标准输出流 cerr对应于标准错误流 2.cout可以重定向,cerr不可以. 3.cout要分配缓冲,cerr不用,所以从理论上来说,cerr输 ...
- cin、cout、cerr、clog用法区别及其在VS环境下的重定向
今天学习C++,发现C++中的输出流除了常用的cout,还有cerr和clog两种输出流对象,由于之前没有遇到过,所以特地查了一下用法,记录一下. 1. cin.cout.cerr.clog ...
- c++中cout、cerr、clog的区别
之前一直在用,但就是没在意两者到底有啥却别,今天又想到这个问题,总结下吧(以下的内容均是本人从网上查阅资料看来整理的,暂时还没有查阅官方资料,不保证准确,欢迎讨论) 其实大家平常常会用的主要有三个:c ...
- 【自学C++】C++ cout clog cerr区别
C++ cout clog cerr区别 C++ cout clog cerr区别教程 在 C++ 中的 std 命名空间中,用于输出的不仅仅只有 cout,还有 clog 和 cerr,分别用于输出 ...
- C++入门系列---cout、cerr、clog 三者的区别
先来看一下C++Primer(第四版)定义了4个IO对象,供大家参考: "标准库定义了4个IO对象,处理输入时使用命名为cin的istream类型对象,这个对象也成为标准输入.处理输出时使用 ...
- 【C++】cout、cerr、clog之间的区别
cout.cerr.clog三者都是标准IO库中提供的输出工具. 但是cout是支持重定向操作的.比如freopen()对于cout有效.clog和cerr主要用于错误输出.因此,如果将程序输出重定向 ...
- cout、cerr、clog
其实大家平常常会用的主要有三个:cout.cerr.clog,首先简单介绍下三者. 这三者在C++中都是标准IO库中提供的输出工具(至于有关的重载问题在此不讨论): cout:写到标准输出的ostre ...
最新文章
- 大一计算机在线考试,Word 大一计算机考试操作题
- FlexUnit单元测试(第三章FlexUnit事件断言)
- Synchronized和Lock区别
- SpringMVC日期处理(二)
- 京东电商广告和推荐的机器学习系统实践
- JDBC学习(三、DDL、DML和DQL)
- Proteus仿真Arduino的Proteus Library文件下载
- windows10 LTSC转换成win10专业版
- 第十二章:如何制定里程碑
- Linux安装软件提示MD5不同,如何在Debian/Ubuntu Linux中校验已安装软件包的MD5和?
- vi命令下编辑文件时,按insert键文件底部不出现“INSERT”问题
- python转写java踩坑记录
- 【Python 23】52周存钱挑战3.0(循环计数for与range)
- 即时聊天工具二次开发
- 路由协议之:WSN网络的RPL路由协议 for 6LOWPAN
- Linux搭建MQTT服务器(Mosquitto)
- 【淘宝】图片放大 代码
- C#获取打印机状态(1)——System.Management
- Java中使用for循环打印99乘法表
- 计算机没有autoCAD_计算机辅助设计3D软件大全autocad2010 2014 2018
热门文章
- 2022/9/5 嵌套路由(靠路由在vue里渲染套渲染),动态路由匹配以及开启propos配置动态路由
- 如何上手机上不了无线网络连接服务器,手机连接不上路由器无线网络怎么处理...
- 关于人工智能不会使大脑变懒惰的议论文_自律,拒绝懒惰和放纵,不枉余生
- 【应用案例】AGV小车的运动控制方案
- Cjson 库的使用
- AutoMapper的使用方法
- 英特尔® Distribution of OpenVINO™ toolkit 2021 版的发布说明
- UE4-(蓝图)第二十四课UI主菜单(UI主菜单功能、镜头过渡,控制权切换)
- 2021年Vue最常见的面试题以及答案(面试必过)
- 对于信息安全与管理的理解