總結: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。