C 語言標準函數庫分類導覽 - stdio.h fwrite()

stdio.h 中的 fwrite() 將陣列或結構的內容寫進檔案中,共需四個參數,第一個參數為陣列或結構的指標,第二個參數為陣列或結構的大小,第三個參數為陣列的元素數量,如果是結構就等同 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://pydoing.blogspot.com/
    檔名:cfwrite.c
    功能:示範 stdio.h 中函數 fwrite() 的使用
    作者:張凱慶
    時間:西元2010年6月 */


編譯後執行,結果如下



您可以繼續參考


1 則留言:

匿名 提到...

想請問一下站長大大
為什麼最後一組的data
會重複地被show出來呢
如上述範例之Lily?