感觉无论输出什么都是一样的啊

推荐图书

  • C++ Primer中文版(第4版)
  • More Effective C++:35个改善编程与设计的有效方法(中文版)
  • 设计模式:可复用面向对象软件的基础


1个回答

赞成 2 反对 已采纳

cerr与cout的主要区分就是:cout输出的信息可以重定向,而cerr只能输出到标准输出(显示器)上。 primer.cpp文件:

#include <iostream>  
using namespace std;  

int main()  
{  
    cout<<"hello----cout"<<endl;  
    cerr<<"hello----cerr"<<endl;  
    return 0;  
}  

编译之后的primer.exe。
在cmd中运行 primer.exe>>primer.txt
在primer文件中只有hello----cout这一行
而在屏幕上输出:hello----cerr
也就是说cout的输出可以重定向到一个文件中,而cerr必须输出在显示器上。
cout流也是标准错误流,作用和cerr一样,区别在于cerr不经过缓冲区,直接向显示器输出信息,而cout中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出.