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