檔案操作在vc程式設計中使用非常普遍,直接使用cfile對檔案進行操作比較繁瑣,使用繼承自cfile的cstdiofile類就要容易得多,用cstdiofile 來處理字串,是最簡單最好理解的的辦法。本文整理了網上大家使用的各種cstdiofile的操作方法,歸納如下:
1.開啟檔案:
file.open(filename, cfile::modecreate|cfile::modereadwrite|cfile::modenotruncate);
開啟檔案主要需要傳入兩個引數,filename——檔名;檔案開啟模式。
幾種比較常見的檔案開啟模式:
cfile::modecreate 以新建方式開啟,如果檔案不存在,新建;如果檔案已存在,把該檔案長度置零,即清除檔案原有內容。
cfile::modenotruncate 以追加方式開啟,如果檔案存在,開啟並且不將檔案長度置零,如果檔案不存在,會丟擲異常。一般與cfile::modecreate 一起使用,則檔案不存在時,新建乙個檔案;存在就進行追加操作。
cfile::modewrite 以只寫模式開啟
cfile::moderead 以唯讀模式開啟
cfile::modereadwrite 以讀寫模式開啟
2.讀檔案:
virtual lptstr readstring( lptstr lpsz, uint nmax ) throw( cfileexception );
bool readstring(cstring& rstring) throw( cfileexception );
cstdiofile的readstring方法可以逐行從檔案中讀取內容,該例將檔案逐行讀出,寫入到str字串裡。
如果需要讀出檔案所有內容,可以用下面的方法:
while(file.readstring(str))
這裡用」\r\n」來為字串加上換行。
3.寫入檔案
file.writestring(str);
這裡很值得注意一下,cstdiofile類沒有提供逐行寫入的方法,只有自己在檔案內容行的末尾增加"\n"或者"\r\n"實現換行的功能,如果檔案的開啟模式設定了cfile::modenotruncate,那麼字串將以追加的形式寫入,並且是從檔案指標現在所處位置寫起。
比如:?
12
3
4
5
6
7
8
9
10
11
12
13
14
15
cstring filename(
"test.txt"
),str(
""
);
cstdiofile file;
// 建立檔案「test.txt」,寫入"1234567890"
file.open(filename, cfile::modecreate|cfile::modewrite);
file.writestring(
"1234567890"
);
file.close();
// 追寫入「abc」
file.open(filename, cfile::modecreate|cfile::modenotruncate|cfile::modewrite);
file.writestring(
"abc"
);
file.close();
// 讀出第一行字串,並用訊息框彈出
file.open(filename,cfile::moderead);
file.readstring(str);
file.close();
messagebox(str);
最終將彈出
abc4567890
那麼如果我們其實是想寫入在檔案末尾,即彈出
1234567890abc,那該如何?
只要在file.writestring("abc");前加入一句 file.seektoend();。這一句的作用在於將檔案指標移動到檔案末尾。
4.關閉檔案
同cfile類得例項一樣,使用完cstdiofile記得呼叫close函式將其關閉。
file.close();
使用CStdioFile讀寫檔案
cstdiofile類的宣告儲存在afx.h標頭檔案中。cstdiofile類繼承自cfile類,cstdiofile物件表示乙個用執行時的函式fopen開啟的c執行時的流式檔案。流式檔案是被緩衝的,而且可以以文字方式 預設 或者二進位制方式開啟。cstdiofile類不支援cfile類中的dupl...
使用CStdioFile 讀寫UNICODE文件
一 寫文件 1 建立文件並寫入內容 cpp view plain copy cstring filepath l c unicode.txt cstdiofile wfile if wfile.open filepath,cfile modecreate cfile modewrite cfile ...
使用sed操作檔案內容
sed擷取檔案 sed是linux中非常好用的小工具,可以方便的對檔案進行操作,本次使用sed加 n 引數來完成對檔案某幾行的擷取 sed n 1,6p filename newfilename 上述sed命令就可以擷取檔案中的1到6行然後輸出到新檔案中。sed替換檔案內字元 使用命令 sed i ...