日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

cout、cerr、clog

發布時間:2025/3/21 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cout、cerr、clog 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

其實大家平常常會用的主要有三個:cout、cerr、clog,首先簡單介紹下三者。

這三者在C++中都是標準IO庫中提供的輸出工具(至于有關的重載問題在此不討論):

cout:寫到標準輸出的ostream對象;

cerr:輸出到標準錯誤的ostream對象,常用于程序錯誤信息;

clog:也是輸出標準錯誤流(這點兒和cerr是一樣的),貌似平時很少用到這個啊;

?

具體在輸出的時候,三者是有區別的:

1、cout經過緩沖后輸出,默認情況下是顯示器。這是一個被緩沖的輸出,是標準輸出,并且可以重新定向(關于重新定向的意思可以參考下面的例子);

2、cerr不經過緩沖而直接輸出,一般用于迅速輸出出錯信息,是標準錯誤,默認情況下被關聯到標準輸出流,但它不被緩沖,也就說錯誤消息可以直接發送到顯示器,而無需等到緩沖區或者新的換行符時,才被顯示。一般情況下不被重定向(重定向這點兒好像有爭論,有些人說和系統有關,本人還不太明白)

?

?

對于為什么有cerr和clog

  比如,你的程序遇到調用棧用完了的威脅(無限,沒有出口的遞歸)。

  你說,你到什么地方借內存,存放你的錯誤信息?

  所以有了cerr。其目的,就是在你最需要它的緊急情況下,還能得到輸出功能的支持。

  緩沖區的目的,就是減少刷屏的次數——比如,你的程序輸出圣經中的一篇文章。不帶緩沖的話,就會每寫一個字母,就輸出一個字母,然后刷屏。有了緩沖,你將看到若干句子“同時”就出現在了屏幕上(由內存翻新到顯存,然后刷新屏幕)。

?

?

附:

?

#include <iostream>

using namespace std;

int main()

{

cout << "cout" << endl;

cerr << "cerr" << endl;

return 0;

}

運行此程序之后,我們在命令行執行如下命令:

假設編譯運行后的可執行文件名為cerr.exe,其目錄為E:\cpro\cerr\Debug\cerr.exe

在命令行下,切換到這個目錄下,執行命令:cerr>test.log

命令行輸出如下:

E:\cpro\cerr\Debug>cerr>>test2.log

Cerr(這是在命令行下輸出的)

查看test2.log文件,發現里面只有

Cout

一行。

可能這個就是所謂的重定向輸出。

從這里可以看出:
cout是在終端顯示器輸出,cout流在內存中對應開辟了一個緩沖區,用來存放流中的數據,當向cout流插入一個endl,不論緩沖區是否漫了,都立即輸出流中所有數據,然后插入一個換行符.?

cerr流對象是標準錯誤流,指定為和顯示器關聯,和cout作用差不多,有點不同就是cout?
通常是傳到顯示器輸出,但可以被重定向輸出到文件,而cerr流中的信息只能在顯示器輸出.?
clog流也是標準錯誤流,作用和cerr一樣,區別在于cerr不經過緩沖區,直接向顯示器輸出信息,而clog中的信息存放在緩沖區,緩沖區滿或者遇到endl時才輸出.

今天看C++Primer(第四版)的時候又看到了這幾個,摘抄一段話,供大家參考:

"標準庫定義了4個IO對象,處理輸入時使用命名為cin的istream類型對象,這個對象也成為標準輸入。處理輸出時使用命名為cout的ostream類型對象,這個對象也稱為標準輸出。標準庫還定義了另外兩個ostream對象,分別命名為cerr和clog。cerr對象又叫標準錯誤,通常用來輸出警告和錯誤信息給程序的使用者,而clog對象用于產生程序執行的一般信息。一般情況下,系統將這些對象與執行窗口聯系起來,這樣,當我們從cin讀入時,數據從執行程序的窗口讀入,當寫到cout、cerr、clog時,輸出寫至同一窗口。運行程序時,大部分操作系統都提供了重定向輸入或者輸出流的方法。利用重定向可以將這些流與所選擇的文件聯系起來"

轉載于:https://www.cnblogs.com/yzl050819/p/5951612.html

總結

以上是生活随笔為你收集整理的cout、cerr、clog的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。