9 3 標準裝置的輸入 輸出

2021-07-13 11:29:03 字數 2374 閱讀 3428

本節對

cin,cout,cerr,clog,>>和<<

(提取和插入運算子)的使用細節作進一步討論。◆ 

1、標準裝置輸入使用要點:

◆ 2、程式執行狀態

:狀態字state為整型,其的各位在ios中說明:

enum ios_state

讀取狀態的有關操作如下:

inline int ios::rdstate() const //讀取狀態字

inline int ios:operator!() const //可用操作符!()代替fail()

inline int ios::bad() //返回非法操作位

inline void ios::clear(int _i) //人工設定狀態,可用來清狀態

inline int ios::eof() const //返回流(檔案)結束位

inline int ios::fail() const //返回操作非法和操作失敗這兩位

inline int ios::good() const //正常返回1,否則返回0

◆ 3、舉例:【例9.3】提高輸入的健壯性。輸入時需要故意輸錯,以測試健壯性。 (

檢視原始碼

)◆ 1、輸入流成員函式宣告

(1)字元輸入:

int istream::get();

//提取乙個字元,包括空格,製表,backspace和回車等,

//與cin有所不同.注意返回為整型

istream&istream::get(char &);

istream&istream::get(unsigned char &);

提取乙個字元,放在字元型變數中

(2)字串輸入:

istream&istream::get(char *,int,char=』\n』);

istream&istream::get(unsigned char *,int,char=』\n』);

istream&istream::getline(char *,int,char=』\n』);

istream&istream::getline(unsigned char *,int,char=』\n』);

提取的串放在第乙個引數為開始位址的儲存區(不查邊界);第二個引數為至多提取的字元個數(指定為n,最多取n-1個,再加乙個字串結束符);第三個引數為結束字元,遇此字元則結束,預設為回車換行符。

get系列函式要求單獨提取結束字元。getline提取字串時如遇到指定結束符則提取該結束符,但不儲存在串中。這兩個函式都會在提取的一系列字元後加乙個串結束符,返回值為物件本身(*this)。

(3)其他函式:

函式gcount()返回最後一次提取的字元數量,包括回車:

int istream::gcount();

函式ignore()讀空(指定乙個大的數量)緩衝區:

istream&istream::ignore(int=1,int=eof);

第乙個引數為要提取的字元數量,預設為1;第二個引數為結束字元,提取該結束字元,但對所提取的字元不儲存不處理,作用是空讀。第二個引數的預設值eof為檔案結束標誌。

在iostream中eof定義為-1,在int get()函式中,讀入輸入流結束標誌ctrl+z(^z)時,函式返回eof,為了能表示eof的「-1」值,返回型別為int。採用cin.eof()函式,當前所讀為eof則返回非零,注意函式自身未從流中讀取。

【例9.4】 ignore()和gcount()函式使用。(

檢視原始碼)◆ 

2、輸出流成員函式宣告

:ostream&ostream::put(char);

//輸出引數字元

ostream&ostream::put(unsigned char);

ostream&ostream::put(signed char);

ostream&ostream::flush();

//重新整理乙個輸出流,用於cout和clog過載必須保留原來的使用特性。過載只能在使用者定義類中,將過載的運算子的函式說明為該類的友元函式:

friend istream&operator>>(istream&,classname&);

friend ostream&operator<<(ostream&,classname&);

函式的返回值是對輸入或輸出流的引用,這是為了保證在cin和cout中可以連續使用「>>」或「<<」運算子,與所有「>>」和「<<」過載函式一致。第乙個引數是輸入或輸出流的引用,作為「>>」或「<<」的左運算元;第二個引數為使用者定義類的引用,作為右運算元,流用作函式引數,必須是引用呼叫,不能是傳值呼叫。

【例9.5】改進【例6.10】,過載插入運算子「<<」。(

檢視原始碼

)【例9.6】使用者定義的複數類complex的輸入與輸出。(

檢視原始碼

標準輸入輸出

linux的大部分命令都具有標準的輸入輸出埠,有哪些標準裝置資訊?名稱 檔案描述符 含義裝置 說明stdin 0標準輸入 鍵盤命令在執行時所需要的輸入資料,通過它來獲取 stdout 1標準輸出 顯示器命令在執行後所產生的輸出資料,通過它來送出 stderr 2標準錯誤 顯示器命令在執行後所產生的錯...

標準輸入輸出

目錄流緩衝 格式輸出 格式輸入 目錄流緩衝 格式輸出 格式輸入 記錄下,了解概念。當用流或檔案描述字i o函式開啟乙個檔案時,分別返回乙個流或檔案描述字,後面就可以將這個流或檔案描述字作為引數交給相應讀寫函式來完成實際的讀寫操作。通過關閉檔案可以終止程式與檔案的連線。檔案描述字表示為int型別的物件...

python標準輸入輸出

sys模組 usr bin python2.6 import sysfor line in sys.stdin print line,先寫乙個指令碼,顯示行號和內容,之後引用它 usr bin env python import sys counter 1 while true line sys.s...