C語言檔案操作之fread與fwrite

2021-07-29 03:58:09 字數 1824 閱讀 5090

fread與fwrite都是以二進位制形式讀取和寫入檔案中的資料

1. 函式原型

int fread(void *buffer,unsigned sife,unsigned count,file *fp)

2. 功能說明

從由fp指定的檔案中,按二進位制形式將sife*count個資料讀到由buffer指出的資料區中。

3. 引數說明

buffer:這是乙個void型指標,指出要將讀入資料存放在其中的儲存區首位址。

sife:指出乙個資料塊的位元組數,即乙個資料塊的大小尺寸。

count:指出一次讀入多少個資料塊(sife)。

fp:這是個檔案指標,指出要從其中讀出資料的檔案。

4.返回值

正常返回:實際讀取資料塊的個數,即count。

異常返回:如果檔案中剩下的資料塊個數少於引數中count指出的個數,或者發生了錯誤,返回0值。此時可以用feof()和ferror()來判定到底出現了什麼

情況。h. 以二進位制形式寫資料到檔案中去

1. 函式原型

int fwrite(void *buffer,unsigned sife,unsigned count,file *fp)

2. 功能說明

按二進位制形式,將由buffer指定的資料緩衝區內的sife*count個資料寫入由fp指定的檔案中去。

3. 引數說明

buffer:這是乙個void型指標,指出要將其中資料輸出到檔案的緩衝區首位址。

sife:指出乙個資料塊的位元組數,即乙個資料塊的大小尺寸。

count:一次輸出多少個資料塊(sife)。

fp:這是個檔案指標,指出要從其中讀出資料的檔案。

4.返回值

正常返回:實際輸出資料塊的個數,即count。

異常返回:返回0值,表示輸出結束或發生了錯誤。

例子:#include #include using namespace std;

struct worker

;void main()

if((out=fopen("e:\\vs_projects\\file_test\\2.txt","wb"))==null)

printf("size of int is %d\nsize of char is %d\n",sizeof(int),sizeof(char));

while(fread(&wk,sizeof(struct worker),1,in)==1)

{ fwrite(&wk,sizeof(struct worker),1,out);

cout<

其中,1.txt輸入內容為: 01 zzzzzzzzzzzzzzzzzzzk 65  

中間用空格表示。debug下,size of int is 4,size of char is 1。說明在此系統下,int佔4個位元組,char佔乙個位元組。

1.txt在debug下的值為

wk.number:0x20313020,wk.name:zzzzzzzzzzzzzzzzzzzk,wk.age:20353620,number和age顯示的是16進製制的ascll碼,對應char型的_10_和_56_(_表示空格),輸入的1.txt中的內容_01_與_65_實際上都是以字元char儲存,故debug下會顯示其對應的ascll碼值,而且是低位在前,高位在後。而在stdout的cmd視窗中顯示的是540094496和540358176,恰好是_01_與_65_所組成的ascll碼的十進位制顯示。

最後,2.txt當中顯示的內容即為1.txt的內容: 01 zzzzzzzzzzzzzzzzzzzk 65 

因此,要注意顯示格式的問題和位數擺放先後順序的問題。

檔案操作之fread函式和fwrite函式

資料塊寫函式 fwritesize t fwrite const void restrict ptr,size t size,size t nitems,file restrict stream 資料塊寫函式 freadsize t fread void restrict ptr,size t si...

C語言檔案操作之 檔案的讀寫

c語言檔案操作之 檔案的讀寫 當檔案按指定的工作方式開啟以後,就可以執行對檔案的讀和寫。下面按檔案的性質分類進行操作。針對文字檔案和二進位制檔案的不同性質,對文字檔案來說,可按字元讀寫或按字串讀寫 對二進位制檔案來說,可進行成塊的讀寫或格式化的讀寫。1.讀寫字元 c提供fgetc和fputc函式對文...

c語言簡單入門之檔案操作

檔案的開啟與關閉 檔案的操作要求引入標頭檔案stdio.h 1,檔案型指標變數 file fp fp指的是乙個指向file型別結構體的指標變數。我們使fp指向某乙個檔案的結構體變數,從而通過該結構體變數中的檔案資訊能夠訪問該檔案。2,file型別的陣列 file f 5 定義了乙個結構體陣列f,它有...