#include<stdio.h>
#include<string.h>
FILE *fp;
#define LEN sizeof(struct client)\\定义LEN
struct client
{
char name[3];
char addres[20];
int number;
}cli[100];//定义通讯录客户信息结构
void input()//输入函数
{
int j=0;
char ch[3];
void save();
void show();//声明save和show函数
printf("是否录入数据(y/n):");
scanf("%s",ch);
while(strcmp(ch,"y")==0)
{
printf("请输入录入通讯录的客户姓名:");
scanf("%s",cli[j].name);
printf("请输入录入通讯录的客户地址:");
scanf("%s",cli[j].addres);
printf("请输入录入通讯录的客户电话:");
scanf("%d",&cli[j].number);
j++;
printf("是否继续录入(y/n)");
scanf("%s",&ch);
}
printf("结束录入\n");
save(j);
show();//录入信息后自动保存和显示
}
void save(j)//保存到文件函数
{
int m=0;
int i=0;
if((fp=fopen("a.txt","wb"))==NULL)//保存到a.txt文件,如有需要可自行定义
{
printf("文件不能打开");
return;
}
for(m=0;m<j;m++)
{
if(fwrite(&cli[m],LEN,1,fp)!=1)
{
printf("保存失败");
getchar();
}
else
{
printf("%s保存成功\n",cli[m].name);
}
}
fclose(fp);
}
void show()//显示所有通讯录信息
{
int i;
int m=0;
if((fp=fopen("a.txt","rb"))==NULL)
{
printf("文件不能打开");
return;
}
while(!feof(fp))
{
if(fread(&cli[m],LEN,1,fp)==1)
{
m++;
}
}
fclose(fp);
if(m==0)
printf("文件内没有数据");
printf("姓名\t地址\t电话\n");
for(i=0;i<m;i++)
{
printf("%s\t%s\t%d\n",cli[i].name,cli[i].addres,cli[i].number);
}
}
void menu()//菜单函数
{
printf("\t###########通讯录系统###########\n");
printf("\t0.退出系统\n");
printf("\t1.录入信息(自动保存到a.txt文件)\n");
printf("\t2.显示所有信息\n");
printf("\t###########通讯录系统###########\n");
}
void main()
{
int n;
menu();
scanf("%d",&n);
if(n>0)
{
while(n)
{
switch(n)
{
case 1:input();break;
case 2:show();break;
default:printf("输入错误,请输入0-2的操作编号");break;
}
scanf("%d",&n);
}
}
else if(n==0)
exit(0);
}