c語言中對二進位制檔案的操作函式

2021-10-07 04:31:49 字數 2044 閱讀 8072

對文字檔案的讀寫參考該文。

檔案按資料在檔案中的儲存形式,分為文字檔案,即檔案中的字元都是以ascii碼的形式儲存;

如3.14 以文字檔案形式儲存,每個字元佔乙個位元組,共佔4個位元組;

二進位制檔案,是將資料按其在記憶體中的儲存形式(二進位製碼)的形式儲存的。

如3.14以二進位制檔案儲存,用float型別佔4個位元組,用double型別佔8個位元組。

本文討論以二進位制檔案形式儲存的各個函式。以文字形式儲存檔案參見該文

鍵盤是標準輸入檔案:stdin

顯示器是標準輸出檔案:stdout

標準錯誤檔案:stderr

二進位制檔案的開啟,關閉與文字檔案的開啟、關閉類似,參照該文。

開啟讀/寫

關閉fopen()

fread()

fclose()

fwrite()

返回值為1,檔案結束;

返回值為0,檔案沒有結束。

因為文字檔案中,資料是以ascii碼值形式存放的,而ascii碼值的範圍是0-255,不會等於-1.

注意:在未close檔案前,對檔案進行多次write,是不會清除檔案中原來的資料的。

1)fread

fread(buffer,size,count,fp)

buffer:指標,表示記憶體中儲存空間的首位址;

count:要讀寫的單元數

size:每單元的位元組數

fp:檔案指標。

從fp所指的檔案中讀count個單元,每個單元size個位元組,到以buffer為起始位址的記憶體中

例如:int a[2];

fread(a,4,2,fp);

2)fwrite

fwrite(buffer,size,count,fp)

buffer:指標,表示記憶體中儲存空間的首位址;

count:要讀寫的單元數

size:每單元的位元組數

fp:檔案指標。

將以buffer為起始位址記憶體中的count個單元,每個單元size個位元組寫到fp所指的檔案中。

例如:int a[2]=;

fwrite(a,4,2,fp); 將以a為起始位址的記憶體中的2個單元,每單元4個位元組,寫到fp所指的檔案中。

順序儲存的時候,對檔案讀寫操作是從檔案的開始位置進行的,

隨機訪問檔案可以從從檔案的任意位置進行操作的。

fopen的時候,檔案位置指標指向檔案的開頭,第乙個資料之前;

檔案結束後,檔案位置指標指向檔案的結尾,最後乙個資料之後。

對資料進行讀操作,檔案位置指標指向尚未讀資料之前;

對資料進行寫操作,檔案位置指標指向剛寫入的資料之後。

1)fseek(fp,offset,origin);  //一般用於二進位制檔案,因為文字檔案會發生字元轉換,計算位置會發生混亂。

offset為以origin為幾點,以位元組為單位的偏移量;當offset為正整數,表示位置指標從指定的起始點向後移動,當offset為負整數的時候,表示位置指標從指定的起始點向前移動。

起始點位置

巨集定義巨集定義值

檔案起始位置

seek_set

0檔案當前位置

seek_cur

1檔案末尾位置

seek_edn

2返回到檔案開頭位置:

fseek(fp,0l,seek_set);   //檔案第乙個資料之前?(指向檔案第一資料)

返回到檔案末尾位置:

fseek(fp,0l,seek_end);  //檔案最後乙個資料之後

2)ftell函式

獲得檔案當前位置指標的位置,並返回當前位置指標相對於檔案開頭的位元組數。

ftell(檔案指標)

例如:計算檔案的中總的位元組數

fseek(fp,0l,seek_end);

long   size = ftell(fp);

3)rewind函式

rewind(fp);

使檔案指標返回到檔案開頭位置。

等價於fseek(fp,0l,seek_set);

C 對二進位制檔案的讀寫操作

二進位制檔案不是以ascii 存放資料的,它將記憶體中資料儲存形式不加轉換地傳送到磁碟檔案,因此它又稱為 記憶體資料的映像檔案。因為檔案中的資訊不是字元資料,而是位元組中的二進位制形式的資訊,因此它又稱為 位元組檔案。對二進位制檔案的操作也需要先開啟檔案,用完後要關閉檔案。在開啟時要用ios bin...

C 對二進位制檔案的讀寫操作

二進位制檔案不是以ascii 存放資料的,它將記憶體中資料儲存形式不加轉換地傳送到磁碟檔案,因此它又稱為 記憶體資料的映像檔案 因為檔案中的資訊不是字元資料,而是位元組中的二進位制形式的資訊,因此它又稱為 位元組檔案 對二進位制檔案的操作也需要先開啟檔案,用完後要關閉檔案。在開啟時要用ios bin...

C 的二進位制檔案操作

1 數值應儲存在二進位制檔案 首先列舉文字 二進位制檔案的操作 讀寫 方法 方式 1 讀取 拷貝 刪除 using system using system.io class test 讀取檔案 using streamreader sr file.opentext path 刪除 拷貝 try ca...