i/o(輸入/輸出)流類庫提供物件之間的資料互動服務
流類庫預定義了一批流物件,連線常用的外部裝置
程式設計師可以定義所需的i/o流物件,使用流庫提供的工作方式 實現資料傳輸
(概括)
1.程式中,對資料的輸入/輸出是以位元組流實現的
2.應用程式對位元組序列作出各種資料解釋
3. i/o系統的任務就是在記憶體和外部裝置之間穩定可靠地傳輸資料和解釋資料。
4.流類物件可以建立和刪除,可以從流中獲取資料和向流新增資料
流類庫
1.流庫(stream library)是用繼承方法建立的輸入輸出類庫
2.流庫具有兩個平行的基類:streambuf 和 ios 類,所有流類均以兩者之一作為基類
streambuf 類提供對緩衝區的低階操作
設定緩衝區對緩衝區指標操作向緩衝區存/取字元
以下三個類竇繼承了streambuf(對緩衝區的低階操作
filebuf(檔案緩衝管理)
strstreambuf(字串緩衝區管理)
stdiobuf(標準i/o緩衝區管理)
ios 類及其派生類提供使用者使用流類的介面,支援對streambuf 的緩
沖區輸入/輸出的格式化或非格式化轉換
標頭檔案
iostream.h包含操作所有輸入/輸出流所需的基本資訊含有cin、cout、cerr、clog物件,提供無格式和格式化的i/o
iomanip.h包含格式化i/o操縱運算元,用於指定資料輸入輸出的格式
fstream.h處理檔案資訊,包括建立檔案,讀/寫檔案的各種操作介面
標準流和流檔案操作
標準流是c++預定義的物件,提供記憶體與外部裝置進行資料互動功能
流的操作是流類的公有成員函式
標準流
(1) cinistream 類的物件,通常連向鍵盤,可以重定向
(2) coutostream 類的物件,通常連向顯示器,可以重定向
(3) cerrostream 類的物件,連向顯示器。不能重定向
(4) clogostream 類的物件,連向印表機。不能重定向
#includeusing namespace std;
void main()
; cin >> str;
cout << str;
system(str);
cerr << "error for you";//無法重定向
cin.get();
cin.get();
}
輸入流操作函式功能
read
無格式輸入指定位元組數
get從流中提取字元,包括空格
getline
從流中提取一行字元
ignore
提取並丟棄流中指定字元
peek
返回流中下乙個字元,但不從流中刪除
gcount
統計最後輸入的字元個數
eatwhite
忽略前導空格
seekg
移動輸入流指標
tellg
返回輸入流中指定位置的指標值
operstor>>
提取運算子
#includevoid main()
cout << endl ;
cout << "enter third sentence followed by enter\n" ;
char s[ 80 ] ;
cin.get ( s, 10 ) ;
cout << s << endl ;
}
輸出流操作函式功能put
無格式,插入乙個位元組
write
從無格式,插入一位元組序列
flush
重新整理輸出流
seekp
移動輸出流指標
tellp
返回輸出流中指定位置的指標值
operstor
//例10-3
#includevoid main()
{ cout << "enter a sentence followed by enter\n" ;
char s[ 26 ] ;
cin.getline ( s, 26 ) ;
cout.write(s, 26) ;
cout<
流錯誤狀態
標識常量值 意義
goodbit0x00 狀態正常
eofbit0x01 檔案結束符
failbit0x02 i/o操作失敗,資料未丟失,可以恢復
badbit0x04 非法操作,資料丟失,不可恢復
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 從指定的流...