c++中cerr和cout的区别

来源:互联网 发布:iphone 投影到mac全屏 编辑:程序博客网 时间:2024/06/15 22:44
cerrThe object controls unbuffered insertions to the standard error output as a byte stream. Once the object is nstructed, the expression cerr.flags & unitbuf is nonzero.
31
   Input
Enter a number: 3test for cerrtest for clogEnter a number: 1test for wcerrtest for wclog

 

cout

The object controls insertions to the standard output as a byte stream.

 

cerr
extern ostream cerr;
The object controls unbuffered insertions to the standard error output as a byte stream. Once the object is constructed, the expression cerr.flags() & unitbuf is nonzero.

cout
extern ostream cout;
The object controls insertions to the standard output as a byte stream.

 

cerr: 错误输出流,无缓冲,不可以重定向。输出的数据不经过缓冲区,直接放到指定的目标中,既然不经过缓冲区那么其它程序就无法把要输出的内容送到其他目标中,所以说它不能被重定向。

cout:标准输出流,有缓冲,可重定向。把要输出的数据先放到缓冲区中,然后再从缓冲区到你指定的设备中。当向cout流插入一个endl,不论缓冲区是否漫了,都立即输出流中所有数据,然后插入一个换行符.