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