1樓:匿名使用者
c語言把一個結構體陣列寫入檔案分三步:
1、以二進位制寫方式(wb)開啟檔案
2、呼叫寫入函式fwrite()將結構體資料寫入檔案
3、關閉檔案指標
相應的,讀檔案也要與之匹配:
1、以二進位制讀方式(rb)開啟檔案
2、呼叫讀檔案函式fread()讀取檔案中的資料到結構體變數
3、關閉檔案指標
#include
struct stu ;
int read_file();
int write_file();
int main()
int write_file()
;fp=fopen( "stu.dat", "wb" ); //b表示以二進位制方式開啟檔案
if( fp == null ) //開啟檔案失敗,返回錯誤資訊
向檔案中寫入資料
fclose(fp);//關閉檔案
return 0;
}int read_file()
讀檔案中資料到結構體
age, student.score ); //顯示結構體中的資料
fclose(fp);//關閉檔案
return 0;
}fwrite(const void*buffer,size_t size,size_t count,file*stream);
(1)buffer:指向結構體的指標(資料首地址)
(2)size:一個資料項的大小(一般為結構體大小)
(3)count: 要寫入的資料項的個數,即size的個數
(4)stream:檔案指標。
2樓:小
fwrite(const void*buffer,size_t size,size_t count,file*stream); (1)buffer:是一個指標,對fwrite來說,是要輸出資料的地址。
(2)size:要寫入的位元組數;
(3)count:要進行寫入size位元組的資料項的個數;
(4)stream:目標檔案指標。
這裡
sizeof用來測量結構體client的長度、、也就是要寫入的位元組數、、
3樓:匿名使用者
這一句的作用:
將陣列cus的第i+1個結構體寫入檔案。因為他傳入的是指標&cus[i],即第i+1個元素的首位地址,而且寫入的長度是該結構體型別的size。
如果你想要把整個結構體陣列都寫入檔案,則應該為:
fwrite(cus,sizeof(cus),1,fp);
或者
對於像結構體和陣列這樣的序列資料,在記憶體中是連續儲存的。所以我們在處理的時候,經常只需要確認它的首地址和長度就ok了.對這一點應用熟練了,你會充分感受到指標帶來的便捷,在很多問題上也就如魚得水……
僅供參考!
c語言中,如何把陣列裡的資料寫入檔案?
c語言 把結構體中的資料寫入檔案的問題
C語言結構體陣列的初始化,C語言結構陣列初始化的問題
定義成struct list 試試呢?struct list creat char name,int priority,int time 同學,你注意到了create 函式裡面,你又定義了一句 list pr 了麼?這句話時關鍵,首先,你在main 函式 我猜應該是main吧 中寫道 list pr...
c語言怎麼將資料寫入檔案,c語言中怎樣把資料存入檔案
利用vc軟體通過 書寫就可以將資料寫入檔案。首先開啟vc 6.0。選擇檔案,新建。選擇c source file 新建一個空白文件。先宣告標頭檔案 include 寫上主函式 void main 主要 file infile,outfile,otherfile char input char inp...
在C語言中陣列名是地址,那麼結構體名是不是地址呢
使用 取地址運算子 才能得到結構體的地址。和陣列不一樣,單獨的結構體名不是該結構體地址的 同義詞。單獨的機構體名不是該機構體的地址。當然不是,結構體名你可以理解成一個資料型別 不是,結構體名是一個型別名 不是,必須使用 才能得到地址。c語言中陣列名是一個地址變數嗎 結構體名相當於類名,作用也與類名相...