C++中的輸入輸出(一)

在C語言中,用printf()和scanf()進行輸入輸出,但是不能保證所輸入輸出的數據是安全、可靠的。C++的I/O操作時類型安全的(type safe)。


iostream頭文件中定義了四種流對象,分別是cin、cout、cerr和clog。其中,向鍵盤輸入時用cin流,向顯示器輸出時用cout流,向顯示器輸出錯誤信息

時用cerr和clog流。 

cerr和cout的流的區別:

兩者雖然都是向顯示器輸出數據,但是cout可以重定向到其他文件,而cerr只能向顯示器輸出錯誤提示信息,而且錯誤信息是根據用戶需要設置的。

clog流和cerr差不多,都是向顯示器輸出錯誤信息,但是cerr是不經過緩衝區,直接顯示在顯示器上,而clog是先經過緩衝區,等到緩衝區滿

或者遇到endl時,才向顯示器輸出結果。


格式輸出數據

方法一:使用控制符(但要包含頭文件 iomanip)

例子:

int a;

cin>>a;

cout<<"dec:"<<dec<<a<<end;    // 以十進制輸出整數a

cout<<"hex:"<<hex<<a<<endl;   //以十六進制輸出整數a

cout<<"oct"<<setbase(8)<<a<<end;   //以八進制輸出整數a

char *p="china";

cout<<setw(10)<<p<<endl;     //指定輸出域寬爲10,輸出字符串                         輸出結果爲      china

cout<<setfill('*')<<setw(10)<<p<<endl;   //指定域寬爲10,空白部分用*代替      輸出結果爲*****china


方法二:用流對象的成員函數控制輸出格式

流成員函數setf通過格式標誌來控制輸出的格式,格式標誌在類ios中被定義爲枚舉類型,因此在引用的時候要加上類ios和域運算符::

例子:

        inta=21
        cout.setf(ios::showbase);//顯示基數符號(0x或0)
        cout<<″dec:″<<a<<endl; //默認以十進制形式輸出a
        cout.unsetf(ios::dec); //終止十進制的格式設置
        cout.setf(ios::hex); //設置以十六進制輸出的狀態
       cout<<″hex:″<<a<<endl; //以十六進制形式輸出a
       cout.unsetf(ios::hex); //終止十六進制的格式設置
       cout.setf(ios::oct); //設置以八進制輸出的狀態
       cout<<″oct:″<<a<<endl; //以八進制形式輸出a
       cout.unseft(ios::oct);







發佈了28 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章