写了新建联系人,但是输出所有联系人有问题

This commit is contained in:
root 2023-12-22 13:35:38 +08:00
parent dd4b92d0dd
commit 0cd4bc5019

View File

@ -1,11 +1,12 @@
#include<stdio.h> #include<stdio.h>
#include<stdlib.h> #include<stdlib.h>
#include<errno.h> #include<errno.h>
#include<string.h>
struct Contact//每个联系人的结构体 struct Contact//每个联系人的结构体
{ {
char name[20];//名字
char sex[10];//性别 char sex[10];//性别
char name[15];//名字
char email[30];//email char email[30];//email
}; };
@ -41,7 +42,30 @@ void find_mode(void)//查找联系人函数
void add_mode(void)//新增联系人函数 void add_mode(void)//新增联系人函数
{ {
printf("add\n"); FILE *file=fopen("contact.txt","ab");//打开文件
if(file == NULL)//如果打开失败
{
perror("fopen");//输出错误
return;//结束程序
}
struct Contact contact;//声明一个临时结构体来接收用户
printf("请输入姓名:");
scanf("%20s",contact.name);
printf("请输入性别:");
scanf("%10s",contact.sex);
printf("请输入电子邮箱:");
scanf("%30s",contact.email);
char *pick_email=NULL;//创造变量判断邮箱是否符号要求
pick_email=strstr(contact.email,"@");//判断邮箱是否符合要求
while (pick_email == NULL)
{
while(getchar()!='\n');//清除缓存
printf("请输入正确格式的电子邮箱:");
scanf("%30s",contact.email);//重新接收
pick_email=strstr(contact.email,"@");//重新判断
}
fwrite(&contact,sizeof(struct Contact),1,file);//写入文件
fclose(file);//关闭文件
} }
void delete_mode(void)//删除联系人函数 void delete_mode(void)//删除联系人函数