C 輸入輸出流(1)

2021-10-06 16:32:21 字數 1391 閱讀 5984

i/o流類庫提供物件之間的資料互動服務

流類庫預定義了一批流物件,連線常用的外部裝置

可以定義所需的i/o流物件,使用流庫提供的工作方式實現資料傳輸

程式中,對資料的輸入/輸出是以位元組流實現的,應用程式中對位元組序列做出的各種資料解釋,i/o系統的任務就是在記憶體和外部裝置之間穩定可靠的傳輸資料和解釋資料,流類物件可以建立和刪除,可以從流中獲取資料和向流新增資料。

流的概念

輸入輸出是一種基本的資料傳遞的操作,它可以理解為字串行在計算機記憶體與外設之間的流動。資料從乙個物件到另乙個物件的流動抽象為流,實現裝置之間交換資訊的類稱為流類。按物件導向方法組織的多個流類及其層次集合構成了i/o流類庫,稱為流庫。流庫中的每乙個流類都定義了一種裝置之間的資訊交換方式,按資訊流動方向的不同,可以分為輸入輸出流。

文字流:是一串ascii字元,源程式檔案和文字檔案在傳送時均採用文字流。通常,文字流在不同的裝置之間傳遞時,可能要作一些變換。

二進位製流:是由一串二進位制數組成,二進位製流是將資料以二進位制形式存放的,這種流與裝置上的輸入輸出一一對應,在資料傳送時不需做任何交換。

系統在主存中開闢的用於臨時存放輸入輸出流的資訊的記憶體區稱緩衝區,輸入輸出流也分為緩衝流和非緩衝流。

對於非緩衝流,一旦資料被送入流中,立即進行處理。

對於緩衝流,只有當緩衝區滿時,或當前送入的資料為新的一行字元時,系統才對流中的資料進行處理。引入緩衝流的主要目的是為了提高系統的效率。

c++流類庫具有兩個平行的基類,即streambuf類和ios類,所有其他的流類都是從它們直接或間接的派生出來。其中,ios類為輸入輸出操作在使用者一方的介面,負責高層操作。streambuf類為輸入輸出操作在物理裝置一方的介面,負責低層操作。

1、streambuf

對緩衝區的低階操作:streambuf(filebuf檔案緩衝區管理、streambuf字元緩衝區管理、stdiobuf標準i/o緩衝區管理)

**iostream:**包含操作所有輸入輸出流所需的基本資訊,含有cin、cout、cerr、clog物件,提供無格式和格式化的i/o。

iomanip:包含格式化i/o操縱運算元,用於是定資料輸入出書格式。

fstream:處理檔案資訊,包含建立檔案,讀寫檔案的各種操作介面。

每種c++版本還包含其他一些與i/o相關的庫,提供特定系統的某些操作。

C 輸入 輸出流

低階i o功能 如無格式的i o 通常指大量的位元組在裝置到記憶體或記憶體到裝置的簡單傳輸。高階i o功能 格式化i o 它將位元組組合成有意義的單元,如資料型別。對於大容量檔案的處理,使用無格式的i o可獲得最佳的效能。不帶引數值成員函式get 從指定的流中讀取乙個字元 即使是空格 並返回該字元作...

C 輸入輸出流

一 c 流的概念 在c 語言中,資料的輸入和輸出 簡寫為i o 包括對標準輸入裝置鍵盤和標準輸 出裝置顯示器 對在外存磁碟上的檔案和對記憶體中指定的字串儲存空間 當然可 用該空間儲存任何資訊 進行輸入輸出這三個方面。對標準輸入裝置和標準輸出設 備的輸入輸出簡稱為標準i o,對在外存磁碟上檔案的輸入輸...

C 輸入 輸出流

一 流低階i o功能 如無格式的i o 通常指大量的位元組在裝置到記憶體或記憶體到裝置的簡單傳輸。高階i o功能 格式化i o 它將位元組組合成有意義的單元,如資料型別。對於大容量檔案的處理,使用無格式的i o可獲得最佳的效能。二 成員函式get和getline 不帶引數值成員函式get 從指定的流...