[C++] I/O流

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++寫更划得來。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章