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