1. 程式人生 > >總結:ofstream和ifstream用法

總結:ofstream和ifstream用法

ofstream是從記憶體到硬碟,ifstream是從硬碟到記憶體。

函式說明:

1、開啟檔案在fstream類中,成員函式open(),就是用來開啟檔案的,其原型是:

     void open(const char* filename,int mode,int access);//filename:要開啟的檔名;     mode: 要開啟檔案的方式;     access:開啟檔案的屬性開啟檔案的方式在類ios(是所有流式I/O類的基類)中定義,包括:

1.1    ios::app:以追加的方式開啟檔案

    ios::ate:檔案開啟後定位到檔案尾,

    ios:app就包含有此屬性

    ios::binary:以二進位制方式開啟檔案,預設的方式是文字方式。

    ios::in:    檔案以輸入方式開啟(檔案資料輸入到記憶體)

    ios::out: 檔案以輸出方式開啟(記憶體資料輸出到檔案)

    ios::nocreate: 不建立檔案,所以檔案不存在時開啟失敗

    ios::noreplace:不覆蓋檔案,所以開啟檔案時如果檔案存在失敗

    ios::trunc:  如果檔案存在,把檔案長度設為0 

    可以用“或”把以上屬性連線起來,

    如ios::out|ios::binary

 1.2  開啟檔案的屬性取值是: 0:普通檔案,開啟訪問 

   1:只讀檔案

    2:隱含檔案 

    4:系統檔案

可以用“或”或者“+”把以上屬性連線起來,如3或1|2就是以只讀和隱含屬性開啟檔案。

 1.3 例如:以二進位制輸入方式開啟檔案c:/config.sys fstream file1; file1.open("c://config.sys",ios::binary|ios::in,0); 

       如果open函式只有檔名一個引數,則是以讀/寫普通檔案開啟,即:

        file1.open("c://config.sys"); <=> file1.open("c://config.sys",ios::in|ios::out,0);  

        fstream有兩個子類:

              ifstream(input file stream)和ofstream(outpu file stream),

    ifstream預設以輸入方式開啟檔案,而ofstream預設以輸出方式開啟檔案。

             ifstream file2("c://pdos.def");//以輸入方式開啟檔案

             ofstream file3("c://x.123");//以輸出方式開啟檔案

2   關閉檔案開啟的檔案使用完成後一定要關閉,fstream提供了成員函式close()來完成此操作,如:file1.close();就把file1相連的檔案關閉。

3    讀寫檔案讀寫檔案分為文字檔案和二進位制檔案的讀取,對於文字檔案的讀取比較簡單,用插入器和析取器就可以了;而對於二進位制的讀取就要複雜些。

  這種方式還有一種簡單的格式化能力,比如可以指定輸出為16進位制等等,具體的格式有以下一些
操縱符 功能 輸入/輸出
dec 格式化為十進位制數值資料 輸入和輸出
endl 輸出一個換行符並重新整理此流 輸出
ends 輸出一個空字元 輸出
hex 格式化為十六進位制數值資料 輸入和輸出
oct 格式化為八進位制數值資料 輸入和輸出
setpxecision(int p) 設定浮點數的精度位數 輸出
  比如要把123當作十六進位制輸出:file1<<hex<<123;要把3.1415926以5位精度輸出:file1<<setpxecision(5)<<3.1415926。