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

2021-07-03 02:44:24 字數 2188 閱讀 7869

資料塊寫函式-fwrite

size_t

fwrite(const

void *restrict ptr, size_t size, size_t nitems,

file *restrict stream);

資料塊寫函式-fread
size_t

fread(void *restrict ptr, size_t size, size_t nitems,

file *restrict stream);

注意:fread函式和fwrite函式的返回值是size_t, 返回的是執行寫操作的次數,我們在fread函式中可以設定每次讀的size,nitems讀的次數。因此,可以利用這個特性,在**中判斷一下是否讀的正確。

另外,因為我們在函式的使用中,一旦發現檔案打不開,或者找不到,又或者資料未寫入、未讀入等問題,需要用exit(1)來結束程式,所以標頭檔案中必須包含

#include

#include

#include

#include

#define namelen 20

#define stunum 5

//1.需要構造表示學生資訊的型別struct

typedef

struct student

stu;

//2.需要構造乙個表示學生名字的陣列

char students[stunum][namelen] =

;int main (int argc, const

char *argv)

stu stus[stunum] = ;

//如果開啟成功,構造學生資訊

for (int i = 0; i < stunum;i++)

//將學生資訊寫入到檔案裡fwrite

size_t nwritecount = fwrite(stus,sizeof(stu),stunum,fp);

//目的是確認, 是否正確定寫入了所有內容

if (nwritecount != stunum )

//關閉檔案

fclose(fp);

return

0;}

內容是定義了乙個二維陣列,還有乙個結構體,用只輸入name,其他內容自動生成的方式。

接下來是第二部分,使用fread讀出來,驗證下剛才寫的內容是否正確

#include

#include

#include

#define stulen 20

#define stunum 5

//構造表示學生型別的資料結構 struct

typedef

struct students

stu;

int main(int argc,const

char *argv)

// 宣告乙個緩衝區,用於存放檔案的內容

stu stus[stunum] = ;

// 若開啟成功,則使用 fread 來讀取檔案內容

int nreadcounts = fread(stus,sizeof(stu),stunum,fp);

// 根據檔案函式的返回值來判斷檔案是否讀成功了

if (nreadcounts != stunum)

//若讀取成功的話,列印到螢幕上

for (int i = 0;i < stunum;i++)

// 關閉檔案指標

fclose(fp);

return

0;}

附上顯示結果

is zhangsan,age is

20,stuid is

0the [1] student info:name

is lisi,age is

21,stuid is

1the [2] student info:name

is wangeu,age is

22,stuid is

2the [3] student info:name

is zhaoliu,age is

23,stuid is

3the [4] student info:name

is xiaoqi,age is

24,stuid is

4

fread函式和fwrite函式

1.函式功能 用來讀寫乙個資料塊。2.一般呼叫形式 fread buffer,size,count,fp fwrite buffer,size,count,fp 3.說明 1 buffer 是乙個指標,對fread來說,它是讀入資料的存放位址。對fwrite來說,是要輸出資料的位址。2 size 要...

fread函式和fwrite函式

1.函式功能 用來讀寫乙個資料塊。2.一般呼叫形式 fread buffer,size,count,fp fwrite buffer,size,count,fp 3.說明 1 buffer 是乙個指標,對fread來說,它是讀入資料的存放位址。對fwrite來說,是要輸出資料的位址。2 size 要...

C語言檔案操作之fread與fwrite

fread與fwrite都是以二進位制形式讀取和寫入檔案中的資料 1 函式原型 int fread void buffer,unsigned sife,unsigned count,file fp 2 功能說明 從由fp指定的檔案中,按二進位制形式將sife count個資料讀到由buffer指出的...