編寫一個程序,將聯繫人信息存入文件中並顯示出來

#include<stdio.h>

struct people
{
    char name[20];
    char QQ[20];
    char tel[20];
    char address[40];
};

void main(void)
{    
    char ch;
    FILE *fp;
    fp=fopen("m.c","wb");
    struct people zjh;
    
    if(fp==NULL)
    {
        printf("文件不存在!!!\n");
    }
    while(1)
    {
        printf("請輸入聯繫人姓名:\n");
        scanf("%s",zjh.name);
        printf("請輸入聯繫人QQ:\n");
        scanf("%s",zjh.QQ);
        printf("請輸入聯繫人電話:\n");
        scanf("%s",zjh.tel);
        printf("請輸入聯繫人地址:\n");
        scanf("%s",zjh.address);
        fwrite(&zjh,sizeof(struct people),1,fp);
        ch=getchar();
        printf("是否結束添加聯繫人?('Y'和‘y’表示退出)\n");
        ch=getchar();
        if(ch=='y'||ch=='Y')
        {
            break;
        }
    }

    fclose(fp);    
    fp=fopen("m.c","rb");

    if(fp==NULL)
    {
        printf("文件不存在!!!\n");
    }

    while(1)
    {
        fread(&zjh,sizeof(zjh),1,fp);
        if(feof(fp))
        {
            break;
        }
        printf("%s\t%s\t%s\t%s\n",zjh.name,zjh.QQ,zjh.tel,zjh.address);
        
    }
    fclose(fp);

}

寫此程序時,自己在向文件添加數據後沒有關閉程序,導致後面的對文件讀取時,一直說文件中沒有內容,但打開文件去看時文件中又有數據,最後自己才知道,原來是因爲最後關閉了文件,所有數據最後才送到硬盤中。

發佈了26 篇原創文章 · 獲贊 33 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章