I/O類
iostream 標準輸入輸出
fstream 文件輸入輸出
sstream string輸入輸出
wchar_t 寬字符類型,對應的有wistream和wostream流中的wcin,wcout等
流的條件狀態
通過s.bad(),s.fail()等可以查詢相關狀態,返回true表示相應標誌位被置1了
通過cin.clear(),cin.setstate(flags)可以管理條件狀態
刷新輸出緩衝
cout << "bye" << flush; //輸出hi,不附帶任何字符,刷新 cout << "bye" << ends; //輸出hi,附帶一個空字符,刷新
程序崩潰或異常終止時不會刷新
關聯的輸入輸出流會,使用任一種流時都會刷新
tie函數
cin.tie(); //返回關聯的輸出流指針cout
cin.tie(&cerr); //將cin與cerr關聯起來
同理可將輸出流與輸入流關聯起來
文件輸入輸出
基本類型
ifstream 讀數據
ofstream 寫數據
fstream 讀寫數據
fstream特有操作
fstrm(s),創建並打開文件名爲s的文件,打開模式依賴於fstrm的類型
fstrm(s,mode),按指定模式mode打開
fstrm.open(),打開文件名爲s的文件,打開模式依賴於fstrm的類型
fstrm.close()
fstrm.is_open(),返回bool值,指出fstrm是否成功打開且尚未關閉
可以將IO流作爲對象傳遞到函數中使用
檢測open是否成功
ifstream in1; in1.open("test"); ifstream in2("test"); if(in1) { /* ...... */ }
文件模式
in 以讀方式打開
out 以寫方式打開
app 追加
ate 打開後直接定位到文件末尾
trunc 截斷文件,相當於重寫
binary 二進制方式IO
string流
基本類型
istringstream,ostringstream,stringstream
基本操作
strm(s) 初始化strm,保存s的拷貝
strm.str() 返回strm保存的string
strm.str(s) 將s拷貝到strm中
使用sstream的方法類似,通常用於逐行處理文件(istringstream)或逐行打印前的操作(ostringstream)
本來在總結函數部分,結果臨時要寫個關於文件操作的腳本,想了想不如總結一下,用C++寫更划得來。