对于这三个输出流的使用一直都有困惑,平时用的比较多的其实一直都只有cout。今天特意查了一下:
What is the difference between cout, cerr, clog of iostream header in c++? When to use which one?
看完之后大致明白了使用上的区别了:
cout 是用于正常的程序输出,可以被缓冲。
cerr是用于输出错误,不可以被缓冲,会马上刷新到屏幕上。
clog也是用于输出错误,但是可以缓冲,所以更多用于日志输出。
之所以定义这三种类型,本人觉得更多的原因是他们可以各自被重定向输出到各自的文件中。这样一来就可以将程序的正常输出,日志输出,错误输出分开。当三者都显示在屏幕上时貌似看起来是没有什么差别的。