1. 程式人生 > >C++IO庫 - 隨便記點什麼

C++IO庫 - 隨便記點什麼

1. C++使用標準庫類來處理面向流的輸入和輸出:

    iostream 處理控制檯IO;

    fstream處理命名檔案IO;

    stringstream完成記憶體string 的IO;


2.  IO物件無拷貝或賦值

   


    


3.  iostream:  每個輸出流管理一個緩衝區,用來儲存程式讀寫的資料;

    導致緩衝重新整理的原因(資料真正寫到輸出裝置或檔案):

    1.程式正常結束,作為main函式的return操作的一部分,緩衝重新整理被執行;

    2.緩衝區慢時,需要重新整理緩衝,然後新的資料才可以繼續寫入緩衝區;

    3.使用操作符如: endl, ends, flush來顯示重新整理緩衝區;

    4.在每個輸出操作後,可以用操作符unitbuf設定流的內部狀態,來清空緩衝區。預設情況,對cerr是設定unitbuf的,因此    寫    到cerr的內容都是立即重新整理的;

    5.一個輸出流可能  被關聯到另一個流,這種情況下,當讀寫被關聯的流時,關聯到的流的緩衝區會被重新整理。例如,cin和cerr都關聯到cout,因此,讀cin或寫cerr都會導致cout的緩衝區重新整理。


    操作符endl,ends, flush重新整理緩衝區: 

    endl完成換行並重新整理緩衝區;

    ends向緩衝區插入一個空字元,然後重新整理緩衝區;

    flush重新整理緩衝區,但不輸出任何額外的字元;

    測試:

    

結果:

    


關聯輸入輸出流:


4. 檔案輸入輸出  :  fstream

    支援檔案IO的三個型別:  ifstream; ofstream;   fstream.

    讀寫檔案模式:

    

測試程式碼:


5. string 流  : istringstream;  ostringstream;  stringstream;

  由於是繼承自iostream, 所以可以用 <<  或  >> 符合來定向輸入或輸出流到 string流中:


 

第一行為輸入, 可見 >> 符號是按空格當作各項的分割符的。