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