9 1輸入輸出流

2023-01-03 12:39:11 字數 2236 閱讀 3656

第九章輸入輸出流

9.1 輸入輸出流的概念

一、c++的輸入輸出包含三方面內容

1. 對系統指定的標準裝置的輸入輸出,例如鍵盤作為輸入裝置,螢幕作為輸出裝置,簡稱標準io。

2. 對磁碟檔案進行輸入輸出,簡稱檔案io。

3. 對記憶體空間進行輸入輸出,通常把乙個字元陣列作為儲存空間,稱為字串輸入輸出,簡稱串io。

二、流物件

c++把程式中資料的流動抽象為「流」物件進行管理,簡稱流。

資料從鍵盤或磁碟檔案流入程式,這樣的流稱為輸入流。資料從程式流出到螢幕或磁碟檔案,這樣的流稱為輸出流。

實際上不論輸入還是輸出的資料,都要在記憶體開闢乙個緩衝區,流物件與記憶體緩衝區相對應的。

三、流類庫

ios是抽象基類,派生出istream和ostream,分別處理輸入與輸出。

iostream類雙繼承自istream和ostream,它沒有新增新成員,只是把istream和ostream綜合在一起。

標頭檔案定義了ios類、istream類、ostream類、iostream類,定義了cin、cout、cerr、clog等流物件。

cin:istream類物件,代表標準輸入。

cout:ostream類物件,代表標準輸出。

「<<」和「>>」本來是位運算的運算子,在iostream標頭檔案中被過載為成員函式,它們的方向正好代表了資料的流向。

四、常用io操作

1. 標準輸入流cin,除了使用「>>」運算子,還可以使用「get」成員函式。

不帶引數的get函式,提取乙個字元,作為返回值。

帶乙個引數的get函式,引數是乙個變數,提取乙個字元給引數變數,成功返回非0,失敗返回0。

帶三個引數的get函式,get(字元陣列/指標,字元個數n,終止字元),從輸入流提取最多n-1個字元給字串,自動加結尾標誌'\0',遇到終止字元提前結束,成功返回非0,失敗返回0。常用於讀取帶空格的一行。

getline函式,用法同三個引數的get函式。

例:x=

char y[50];

'\n'); //常用格式,回車結束,最長輸入49個字元

輸入一句話到a,此時句子中可以有空格也可以有回車換行,直到碰到句號「.」才停止輸入

ios類中定義了乙個資料成員表示操作失敗、物件失效,並且過載了bool型的型別轉換函式。cin是ios的派生類成員,cin輸入失敗後,參與邏輯運算會自動轉換成bool型的false,對cin的一些操作也會失去響應。因此常見以下形式的**。

例:void main()

}如果想要停止程式,輸入任意字元即可,因為cin得到字元,對int型的輸入就會失敗。

注:這種方式只用於小的演算法的main函式中,其他函式如果也讓cin失效可能造成程式意外終止,另外cin或其他輸入流失效後,再次用

這個流輸入將得不到響應。

2. 標準輸出流cout

輸出時,輸出的字元先放在緩衝區,緩衝區滿時即輸出到螢幕,但是遇到endl,會立即輸出到螢幕並清空緩衝區。

endl不僅是換行標誌,也是清空緩衝區標誌。也可以用clear()成員函式清空緩衝區。

ostream類的put函式成員,可以輸出單個字元。put函式的引數可以是字元,也可以是ascii碼值。

例:'a');

3. cerr流物件,標準錯誤流

cerr流的用法同cout,但是傳給cerr的報錯資訊,不進入緩衝區,立即輸出到螢幕。

例:if(a>0) cerr<<「error! a must <0」<>」運算子

1. 流操作符一般過載為自定義類的友元函式,過載後可以方便的使用cout和cin輸入輸出自定義類的物件。

例:#include

using namespace std;

class person;

ostream & operator <<(ostream& os,person& t);

istream & operator >>(istream& os,person& t);

class person

void main()

private:

char name[20];

int age;

};class student:public person

private:

int score;

};ostream & operator <<(ostream& os,person& t)

ostream& operator<<(ostream& os,student& t)

void main()

C流格式控制的輸入輸出

1.用ios類成員函式進行格式化 狀態標誌 ios類中定義的列舉 enum 狀態標誌是乙個long型別的長整數,這些列舉值可以作為x flags上的每一位的標誌,若定義了某一項,則x flags中的某一位為1,否則為0。用成員函式對狀態標誌進行操作 include using namespace s...

數字輸入輸出

數字輸入 輸出就是二進位制值輸入 輸出如開關接通是1,斷開是0 輸入裝置向計算機輸入資料和資訊的裝置。是計算機與使用者或其他裝置通訊的橋梁。輸入裝置是使用者和計算機系統之間進行資訊交換的主要裝置之一.鍵盤,滑鼠,攝像頭,掃瞄器,光筆,手寫輸入板,遊戲杆,語音輸入裝置等都屬於輸入裝置 input de...

輸入輸出系統

輸入輸出系統是計算機系統中的主機與外部進行通訊的系統。它由外圍裝置和輸入輸出控制系統兩部分組成,是計算機系統的重要組成部分。外圍裝置包括輸入裝置 輸出裝置和磁碟儲存器 磁帶儲存器 光碟儲存器等。從某種意義上也可以把磁碟 磁帶和光碟等裝置看成一種輸入輸出裝置,所以輸入輸出裝置與外圍裝置這兩個名詞經常是...