c++中的cerr是什么意思
5个回答
展开全部
std::cerr是ISO C++标准错误输出流,对应于ISO C标准库的stderr。
cout对应于标准输出流,默认情况下是显示器。
cerr对应标准错误流,用于显示错误消息。默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。
例如下面代码编译后生成test.exe
// test.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "hello world---cout" << endl ;
cerr << "hello world---cerr" << endl ;
return 0;
}
cout对应于标准输出流,默认情况下是显示器。
cerr对应标准错误流,用于显示错误消息。默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。
例如下面代码编译后生成test.exe
// test.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "hello world---cout" << endl ;
cerr << "hello world---cerr" << endl ;
return 0;
}
展开全部
cerr与cout的主要区分就是,cout输出的信息可以重定向,而cerr只能输出到标准输出(显示器)上。 例如下面程序编译后生成test.exe
// test.cpp
#include <iostream.h>
int main()
{
cout << "hello world---cout" << endl ;
cerr << "hello world---cerr" << endl ;
return 0;
} 在命令行模式下键入下面的命令: test >>cout.txt
运行结果是:
在生成的cout.txt文件中输出了"hello world---cout"
同时在显示器上输出了"hello world---cerr"
也就是说cout的输出可以重定向到一个文件中,而cerr必须输出在显示器上。
cout是标准输出流,与cerr的区别在于cerr不经过缓冲区,直接向显示器输出信息,而cout中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出.
// test.cpp
#include <iostream.h>
int main()
{
cout << "hello world---cout" << endl ;
cerr << "hello world---cerr" << endl ;
return 0;
} 在命令行模式下键入下面的命令: test >>cout.txt
运行结果是:
在生成的cout.txt文件中输出了"hello world---cout"
同时在显示器上输出了"hello world---cerr"
也就是说cout的输出可以重定向到一个文件中,而cerr必须输出在显示器上。
cout是标准输出流,与cerr的区别在于cerr不经过缓冲区,直接向显示器输出信息,而cout中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cerr是非缓冲输出流,通过它输出的数据,是不会被缓冲的,也就是你传送一个数据给它,它立即输出,不会延迟。可能是因为这个属性,它常常被用于输出出错信息。cout流在输出可能会对数据进行缓冲,有时可能还需flush()强制它立即输出数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cerr是C++预定义的标准错误输出函数,作用就是直接将参数(错误消息)打印到屏幕上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cout对应于标准输出流,默认情况下是显示器。这是一个被缓冲的输出,可以被重定向。
cerr对应标准错误流,用于显示错误消息。默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。一般情况下不被重定向。
例如下面代码编译后生成test.exe
// test.cpp
#include
using namespace std;
int main()
{
cout << "hello world---cout" << endl ;
cerr << "hello world---cerr" << endl ;
return 0;
}
在命令行模式下键入下面的命令:
test >>cout.txt
运行结果是:
在生成的cout.txt文件中输出了"hello world---cout" ,
同时在显示器上输出了"hello world---cerr" ,
也就是说cout的输出可以重定向到一个文件中,而cerr必须输出在显示器上。
cerr对应标准错误流,用于显示错误消息。默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。一般情况下不被重定向。
例如下面代码编译后生成test.exe
// test.cpp
#include
using namespace std;
int main()
{
cout << "hello world---cout" << endl ;
cerr << "hello world---cerr" << endl ;
return 0;
}
在命令行模式下键入下面的命令:
test >>cout.txt
运行结果是:
在生成的cout.txt文件中输出了"hello world---cout" ,
同时在显示器上输出了"hello world---cerr" ,
也就是说cout的输出可以重定向到一个文件中,而cerr必须输出在显示器上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询