C 速查手冊
11.7.13 fread()
stdio.h 的函數 (function) fread() 將檔案的內容寫進陣列 (array) 或結構 (structure) 中,共需四個參數 (parameter) ,第一個參數為陣列或結構的指標 (pointer) ,第二個參數為陣列或結構的大小,第三個參數為陣列的元素數量,如果是結構就等同 1 個陣列元素,第四個參數為指向結構 FILE 的指標。
以下程式示範用 fread() 取得檔案中儲存的資料,然後印在螢幕上,這些資料是利用 fwrite() 的程式輸入到檔案中的
#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 entry = {"", 0, 0, ""};
fPtr = fopen("address.dat", "rb");
if (!fPtr) {
printf("檔案開啟失敗...\n");
exit(1);
}
while (!feof(fPtr)) {
fread(&entry, sizeof(struct addressList), 1, fPtr);
printf("%s - %d - %s - %s\n", entry.nickname, entry.age, entry.sex ? "m" : "f", entry.relation);
}
fclose(fPtr);
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:cfread.c
功能:示範 stdio.h 中函數 fread() 的使用
作者:張凱慶 */
假設原先路徑中已有 address.dat ,編譯以上程式然後執行,結果如下
$ gcc cfread.c |
$ a.out |
John - 15 - m - friend |
Mary - 13 - f - teacher |
Tony - 12 - m - family |
Park - 14 - m - friend |
Lily - 10 - f - friend |
Lily - 10 - f - friend |
$ |