C++中的cerr和cout有什么区别

来源:爱站网时间:2022-12-22编辑:网友分享
给小伙伴们来介绍下C++中的cerr和cout有什么区别的内容,希望朋友们看完后都能掌握好这方面的知识点,有兴趣了解一番的话就跟小编来看看这个内容,一定不会让你失望的。

C++ 中cerr和cout的区别实例详解

前言:

 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.

  Example

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

// iostream_cerr.cpp

// compile with: /EHsc

// By default, cerr and clog are the same as cout

#include <iostream>

#include <fstream>

  

using namespace std;

  

void TestWide( )

{

 int i = 0;

 wcout << L"Enter a number: ";

 wcin >> i;

 wcerr << L"test for wcerr" << endl;

 wclog << L"test for wclog" << endl;

}

  

int main( )

{

 int i = 0;

 cout << "Enter a number: ";

 cin >> i;

 cerr << "test for cerr" << endl;

 clog << "test for clog" << endl;

 TestWide( );

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19  

Input

 Sample Output

Enter a number: 3

test for cerr

test for clog

Enter a number: 1

test for wcerr

test for wclogcout

  

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,不论缓冲区是否漫了,都立即输出流中所有数据,然后插入一个换行符. 

注:Linux下可以用标准错误输出间接重定向cerr的输出

C++中的cerr和cout有什么区别的详情已经给朋友们准备好了,有哪些方面是你没读懂的,随时都可以来站点询问小编解答,喜欢小编整理的这些技术内容吗,喜欢记得来关注下。

上一篇:C++之list怎么使用

下一篇:C++之汉诺塔实例代码

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载