資料塊寫函式-fwrite
size_t
fwrite(const
void *restrict ptr, size_t size, size_t nitems,
file *restrict stream);
資料塊寫函式-freadsize_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指出的...