學c的時候我們就接觸過如何讀寫檔案,c++中存在c++風格的檔案讀寫,同時也支援c風格的讀寫檔案.
這是io類庫的基本結構,箭頭表示該類從何處繼承.
檔案的開啟模式標記代表了檔案的使用方式,這些標記可以單獨使用,也可以組合使用,組合使用時,用|將其連線
模式標記
適用物件
作用ios::in
ifstream、fstream
開啟檔案用於讀取資料。如果檔案不存在,則開啟出錯。
ios::out
ofstream、fstream
開啟檔案用於寫入資料。如果檔案不存在,則新建該檔案;如果檔案原來就存在,則開啟時清除原來的內容。
ofstream、fstream
開啟檔案,用於在其尾部新增資料。如果檔案不存在,則新建該檔案。
ios::ate
ifstream
開啟乙個已有的檔案,並將檔案讀指標指向檔案末尾(讀寫指 的概念後面解釋)。如果檔案不存在,則開啟出錯。
ios:: trunc
ofstream
單獨使用時與 ios:: out 相同。連用時,如果檔案本來就存在,則開啟時清除原來的內容;如果檔案不存在,則新建該檔案。
ios::binary
ifstream、ofstream、fstream
以二進位制方式開啟檔案。若不指定此模式,則以文字模式開啟。
下面的**簡單地展示了如何讀寫文字檔案,重點為**內注釋.
#include
#include
#include
using
namespace std;
intmain
(void
) fdata << name <<
"\t"
;//用流運算子《向檔案中輸入資料
cout <<
"年齡:"
; cin >> age;
fdata << age <<
"\n"
;//輸入資料
} fdata.
close()
;//一定記得關閉檔案
ifstream fread;
fread.
open
("data.txt");
//開啟檔案,如未指定開啟方式,預設為ios::in
while(1
) fread >> age;
//讀取資料
cout << name <<
"\t"
<< age << endl;
} fread.
close()
;//關閉檔案
data.txt檔案的內容:
寫二進位制檔案的簡單操作如下,基本的操作和讀寫文字檔案一樣:
#include
#include
#include
using
namespace std;
intmain
(void
) fdata << name <<
"\t"
; cout <<
"年齡:"
; cin >> age;
//write(const unsigned char *buf,int num);
//從buf 指向的快取寫 num 個字元到檔案中
data.dat檔案內容,可以看到是亂碼
用二進位制方式開啟
前四個是中文的儲存,09是水平製表符(\t),14 00 00 00是輸入的年齡(16進製制),轉化成10進製就是1*16+4=20,和輸入的資料相同,0e是回車(\n).後面乙個資料分析同上
c 中對檔案的操作小結
你平時是怎麼讀取檔案的?使用流讀取。是的沒錯,c 給我們提供了非常強大的類庫 又一次吹捧了.net一番 裡面封裝了幾乎所有我們可以想到的和我們沒有想到的類,流是讀取檔案的一般手段,那麼你真的會用它讀取檔案中的資料了麼?真的能讀完全麼?通常我們讀取乙個檔案使用如下的步驟 1 宣告並使用file的ope...
C 對檔案操作
c 建立目錄 建立目錄c sixage directoryinfo d directory.createdirectory c sixage d1指向c sixage sixage1 directoryinfo d1 d.createsubdirectory sixage1 d2指向c sixage...
c 對檔案操作
獲得當前絕對路徑 指定的路徑 絕對路徑 非web程式引用 return 刪除單個檔案 檔案相對路徑 public static bool deletefile string filepath if file.exists fullpath return false 刪除上傳的檔案 及縮圖 publi...