编写一个程序,将联系人信息存入文件中并显示出来

#include

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);

}

写此程序时,自己在向文件添加数据后没有关闭程序,导致后面的对文件读取时,一直说文件中没有内容,但打开文件去看时文件中又有数据,最后自己才知道,原来是因为最后关闭了文件,所有数据最后才送到硬盘中。

你可能感兴趣的:(c/c++应用程序开发,文件打开,文件关闭,文件信息显示,缓存区,硬盘)