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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++标准输出流对象

發布時間:2025/4/5 c/c++ 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++标准输出流对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

程序設計過程中,不可避免地要進行輸入與輸出操作。前面章節列舉的示例程序中,我們通常都會引入頭文件,因為該頭文件系統聲明了輸入輸出類的對象,包含了該頭文件后,我們就可以直接使用這些對象。這些對象中包含標準的輸出流對象 cout、cerr 和 clog 以及標準輸入流對象 cin 等。

本節,我們就來了解一下標準輸出流的三個對象:cout、cerr 和 clog。所謂標準輸出,其實就是向標準輸出設備進行輸出。通常來講,我們可以將標準輸出設備理解為顯示器。

系統聲明的三個標準輸出流對象 cout、cerr 和 clog 中,cerr 和 clog 對象都是標準錯誤流,不同的是,cerr 是直接將錯誤信息輸出到顯示器,而 clog 是將錯誤信息先寫入到緩沖區,待清掃緩沖區時,再將錯誤內容輸出到顯示器中。與 cerr 和 clog 對象不同,cout 對象則非錯誤流,而只是普通的輸出流,該對象在進行輸出時,也會經過先緩沖區,然后再輸出到顯示器。

#include<iostream> using namespace std; enum index { underflow, overflow }; int array_index ( int *A, int n, int index ); int main() {int *A = new int [ 10 ];for ( int i = 0; i < 10; i ++ )A[i] = i;try{cout << array_index( A,10,5 ) << endl;}catch( index e ){if( e == underflow ){cerr << "index underflow!" << endl;}if( e == overflow ){cerr << "index overflow!" << endl;}}//index underflow test!try{cout << array_index( A,10,-1 ) << endl;}catch( index e ){if( e == underflow ){cerr << "index underflow!" << endl;}if( e == overflow ){cerr << "index overflow!" << endl;}}// index overflow test!try{cout << array_index( A,10,15 ) << endl;}catch( index e ){if( e == underflow ){clog << "index underflow!" << endl;}if( e == overflow ){clog << "index overflow!" << endl;}}return 0; } int array_index( int *A, int n, int index ) {if ( index < 0 ) throw underflow;if ( index > n-1 ) throw overflow;return A[index]; }

在該程序中,我們同時使用了 cout、cerr 和 clog 對象。cout 對象我們早已經不陌生,cerr 和 clog 用于錯誤信息輸出,它們的使用方式和 cout 是一樣的。在本例中,我們將其用于輸出異常信息。當訪問數組出現下標越界時,程序就拋出異常,然后會被 catch 程序塊捕獲并在程序塊中輸出異常信息。

在本例中,我們將程序中的所有 cerr 全都替換為 clog,或者將所有 clog 全都替換為 cerr,程序的輸出結果是不會變化的,從這點看這兩者似乎是沒什么差別,其實差別在是否經過緩沖區,不過本例是無法體現出差別的,因為在輸出異常信息的同時,endl 會帶來一次清掃緩沖區動作,因此經不經過緩沖區是無法得以體現的。cerr 和 clog 之間的細微差別,我們只要做到心中有數就可以了。

總結

以上是生活随笔為你收集整理的C++标准输出流对象的全部內容,希望文章能夠幫你解決所遇到的問題。

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