You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
3.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

void shanchu()
{
system("cls");
struct txl *p;
char name[20],mail[30];
p=phone;
int i,j=0,m=0;
FILE *ptr1;
ptr1=fopen("sto3.txt","rb");
if(ptr1==NULL)
{
printf("通讯录为空\n");//判断是否有储存文件,没有通讯录就返回菜单。
return;
}
rewind(ptr1);
while(!feof(ptr1))
{
if(fread(&p[m],LEN,1,ptr1)==1)
m++;
}
fclose(ptr1);
printf("请输入被删除人的姓名和邮箱\n");
printf("姓名:");scanf("%s",&name);printf("\n");
printf("邮箱:");scanf("%s",&mail);printf("\n");
for(i=0;i<m;i++)
{
if(strcmp(p[i].name,name)==0&&strcmp(p[i].e_mail,mail)==0)
{
for(;i<m-1;i++)
p[i]=p[i+1];
j=1;
}
}
if(j==1)
{
ptr1=fopen("sto3.txt","w");
for(i=0;i<m-1;i++)
{
fwrite(&p[i],LEN,1,ptr1);
}
fclose(ptr1);
}
if(j==1)
printf("删除成功\n");
else
printf("没有此联系人\n");
}
void xiugai()
{
system("cls");
FILE *ptr1;
struct txl *p;
p=phone;
char name[10],mail[30];
int j,i,x=0,m=0;
p=phone;
ptr1=fopen("sto3.txt","rb");
if(ptr1==NULL)
{
printf("通讯录为空\n");
return;
}
// rewind(ptr1);
while(!feof(ptr1))
{
if(fread(&p[m],LEN,1,ptr1)==1)
m++;
}
fclose(ptr1);
printf("请输入修改人的姓名和邮箱\n");
printf("姓名:");scanf("%s",&name);printf("\n");
printf("邮箱:");scanf("%s",&mail);printf("\n");
for(i=0;i<m;i++)
{
if(strcmp(p[i].name,name)==0&&strcmp(p[i].e_mail,mail)==0)
{
x=1;
printf(" 选择修改的内容\n");
do
{
printf("___________________\n");
printf("1.修改姓名 ");printf("2.修改籍贯\n");
printf("3.修改电话号1 ");printf("4.修改电话号2\n");
printf("5.修改邮箱 ");printf("0.放弃修改/退出修改\n");
printf("___________________\n");
printf("请输入序号:\n");
scanf("%d",&j);
switch(j)
{
case 1:printf("请输入修改姓名: ");scanf("%s",&p[i].name);printf("修改成功\n");break;
case 2:printf("请输入修改籍贯: ");scanf("%s",&p[i].hometown);printf("修改成功\n");break;
case 3:printf("请输入修改电话号1: ");scanf("%s",&p[i].number1);printf("修改成功\n");break;
case 4:printf("请输入修改电话号2: ");scanf("%s",&p[i].number2);printf("修改成功\n");break;
case 5:printf("请输入修改邮箱: ");scanf("%s",&p[i].e_mail);printf("修改成功\n");break;
}
}while(j!=0);
}
}
if(x==0)
printf("没有此人\n");
ptr1=fopen("sto3.txt","w");
for(i=0;i<m;i++)
{
fwrite(&p[i],LEN,1,ptr1);
}
fclose(ptr1);
}
void tianjia()
{
system("cls");
static int i=0; //使用static 来计算已经加入的人数。
int j,t;
struct txl *p;
p=phone;
printf("可以开始添加\n");
printf("电话号不能超过11个呦,亲!\n");
printf("电子邮箱不能超过10个字符呦~~\n");
ptr1=fopen("sto3.txt","ab+");
if(ptr1==NULL)
{
ptr1=fopen("sto3.txt","wb+");
if(ptr1==NULL)
{
printf("Cannot open file");
exit(0);
}
}
fseek(ptr1,0,SEEK_END);//使文件的指针指向文件末尾,可以使其添加新的数据
do
{
printf("请输入姓名:");
scanf("%s",&p[i].name); printf("\n");
printf("请输入籍贯:");
scanf("%s",&p[i].hometown); printf("\n");
printf("请输入电话号码1:");
scanf("%s",&p[i].number1);printf("\n");
printf("请输入电话号码2:");
scanf("%s",&p[i].number2); printf("\n");
printf("请输入电子邮箱:");
scanf("%s",&p[i].e_mail); printf("\n");
fwrite(&p[i],LEN,1,ptr1);
printf("完成一个添加,是否继续添加\n ");
printf("1为继续 0为退出添加\n");
fflush(stdin); //清空缓存让数据进入到文件中因为如果数据大小没超过512b不会进入文件这样使得数据强制的进入文件
scanf("%d",&j);
i++;count++;
}while(j!=0&&count!=100);
fclose(ptr1);
}