C 讀寫檔案的簡單封裝

2021-06-22 18:09:08 字數 1419 閱讀 1153

說道檔案讀寫,有很多方法,mfc封裝的有,c++的流檔案讀寫,但是這裡說的其實是c語音對檔案的讀寫封裝,fopen,fwrite,fread,fclose;

這幾個函式很簡單,同時也很強大,速度很快;一般建議用這類方法讀寫檔案;

1:一般,如果想直接寫檔案,例子:

file * f = fopen(pstr,"w+b"); 

fwrite( buf, 1, nlen, f ); 

fclose(f);

這個方式是將一定內容寫到檔案中,但是如果檔案存在會刪除檔案重新寫pbuf到新得檔案;

2:如果想追加寫檔案,一般的方法是:

file * f = fopen(pstr,"a+b"); 

fwrite(  buf, 1, nlen, f ); 

fclose(f);

這樣,如果檔案存在,會將buf寫到檔案的後面,不會銷毀檔案;

3:在一般程式除錯的時候,我們在寫檔案,希望在程式的執行過程中檔案一直追加寫,當程式再次執行的時候重新寫新的檔案追加寫;

例如,寫乙個錄音程式,啟動程式,追加方法寫錄音;關閉程式;再次開啟程式刪除上次寫的音訊檔案重新寫追加檔案錄音;

一般的的解決方法是:

用方法2,追加寫檔案,程式執行關閉後,再次啟動程式前,刪除上次的檔案,否則這次的內容會繼續新增到上次的檔案後面;

fopen 的 「w+b」,方法, 當不關閉檔案指標(fclose(f);)一直用fwrite,可以將檔案一直寫到檔案後面,當重新fopen,a+b的時候檔案重新建立;

所以可以將 檔案指標「f」設定問全域性變數,或者成員變數,但是這樣就有些麻煩而且;

所以程式可以寫成;

static file * f = fopen(pstr,"w+b");

fwrite(  buf, 1, nlen, f ); 

這樣,在程式重新啟動之前 檔案指標一直儲存,所以可以一直追加寫檔案,當程式重新啟動執行到這裡的時候,又會刪除上次檔案重新寫追加檔案;

這樣寫,還是有點麻煩,因為每次都要寫相同的**,但是,目的就是將一定長處的內容寫到檔案中,所以在簡化上述**:

#define debugwritefile( pstr, buf, nlen )

void cdlg::onbnclickedbutton()

{char ch1[10] = "12345 ";

debugwritefile("debugwritefile1.dat", ch1, 10 );

char ch2[10] = "67890 ";

debugwritefile("debugwritefile2.dat", ch2, 10 );

C 簡單檔案讀寫

掌握文字檔案讀寫的方法 了解二進位制檔案的讀寫方法 c 檔案流 fstream 檔案流 ifstream 輸入檔案流 ofstream 輸出檔案流 建立乙個文字檔案並寫入資訊 同向螢幕上輸出資訊一樣將資訊輸出至檔案 include include void main 執行後開啟檔案d me.txt,...

C 實現簡單的檔案的讀寫

這裡的 只是自己的筆記,也供別人參考。但請勿噴。c 實現檔案讀取 include int countlines const char filename 獲取檔案的行數 else 檔案存在,返回檔案行數 return n readfile.close return 0 以上 實現的是,考察檔案裡面包含...

簡單的檔案讀寫

randomaccessfile randomaccessfile raf new randomaccessfile rw 這個randomaccessfile寫的方式 insert模式 它將檔案中的內容,固定成byte陣列,這樣子去定位,如果要 寫東西進去的話,就是在byte對應的元素上面寫,也就...