C 速查手冊
11.7.14 fwrite()
stdio.h 的函數 (function) fwrite() 將陣列 (array) 或結構 (structure) 的內容寫進檔案中,共需四個參數 (parmeter) ,第一個參數為陣列或結構的指標 (pointer) ,第二個參數為陣列或結構的大小,第三個參數為陣列的元素數量,如果是結構就等同 1 個陣列元素,第四個參數為指向結構 FILE 的指標。
以下程式示範用 fwrite() 寫入資料到檔案,然後用 fread() 的程式印出結果
#include <stdio.h>
#include <stdlib.h>
struct addressList {
char nickname[30];
int age;
int sex;
char relation[30];
};
int main(void)
{
FILE *fPtr;
struct addressList blankEntry1 = {"John", 15, 1, "friend"};
struct addressList blankEntry2 = {"Mary", 13, 0, "teacher"};
struct addressList blankEntry3 = {"Tony", 12, 1, "family"};
struct addressList blankEntry4 = {"Park", 14, 1, "friend"};
struct addressList blankEntry5 = {"Lily", 10, 0, "friend"};
fPtr = fopen("address.dat", "wb+");
if (!fPtr) {
printf("檔案開啟失敗...\n");
exit(1);
}
fwrite(&blankEntry1, sizeof(struct addressList), 1, fPtr);
fwrite(&blankEntry2, sizeof(struct addressList), 1, fPtr);
fwrite(&blankEntry3, sizeof(struct addressList), 1, fPtr);
fwrite(&blankEntry4, sizeof(struct addressList), 1, fPtr);
fwrite(&blankEntry5, sizeof(struct addressList), 1, fPtr);
fclose(fPtr);
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:cfwrite.c
功能:示範 stdio.h 中函數 fwrite() 的使用
作者:張凱慶 */
編譯然後執行,結果如下
$ gcc cfwrite.c |
$ a.out |
$ |
在 UNIX-Like 系統可使用指令 ls 印出當前路徑所有檔案,例如
$ ls |
a.out address.dat cfwrite.c |
$ |