void Delete()/*删除信息*/
{
char DeleteName[8];
system("cls");
int i,y=0;
p1=p2=head;
printf("请输入你要删除的信息的姓名:");
scanf("%s",&DeleteName);
getchar();
while(p1!=NULL)
{
if(strcmp(p1->name,DeleteName)==0)
{
printf("\n%10.8s %12.10s %15.4s\n","姓名","电话号码","QQ号");
printf("\n%10.8s %12.10s %15.14s\n",p1->name,p1->tel,p1->com);
y=1;
printf("\n您要删除的是这条记录吗?1---是;2---否\n");
scanf("%d",&i);
if(i==1)
{
if(p1==head)
{
head=p1->next;
free(p1);
}
else
{
p2->next=p1->next;
free(p1);
if((fp==fopen("txl.dat","w"))!=1)
{
printf("文件打开失败");
exit(1);
}
p1=head;
while(p1->next!=NULL)
{
if(fwrite(p1,sizeof(struct Sign),1,fp)!=1)
printf("写入错误");
p1=p1->next;
}
fclose(fp);
}
printf("\n OK! \n");
}
else
break;
}
else if(strcmp(p1->name,DeleteName)&&(p1->next)==NULL)
{
i=0;
}
p2=p1;
p1=p1->next;
}
if(y==0)
{
printf("对不起,没有找到要删除的通讯名单,请检查你要删除的姓名是否正确\n");
}
system("pause");
}
C语言通讯录管理系统的删除模块能运行但数据删除不了怎么解决
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-link 2021-06-08 05:42关注
有好几处逻辑有问题,修改如下:
void Delete()/*删除信息*/ { char DeleteName[8]; system("cls"); int i,y=0; p1=p2=head; printf("请输入你要删除的信息的姓名:"); scanf("%s",&DeleteName); getchar(); while(p1!=NULL) { if(strcmp(p1->name,DeleteName)==0) { printf("\n%10.8s %12.10s %15.4s\n","姓名","电话号码","QQ号"); printf("\n%10.8s %12.10s %15.14s\n",p1->name,p1->tel,p1->com); y=1; printf("\n您要删除的是这条记录吗?1---是;2---否\n"); scanf("%d",&i); if(i==1) { if(p1==head) { head=p1->next; free(p1); } else { p2->next=p1->next; free(p1); if((fp==fopen("txl.dat","w"))!=1) { printf("文件打开失败"); exit(1); } p1=head; while(p1!=NULL) //应该是p1!=NULL,不是p1->next!=NULL,否则最后一个节点写不进去 { if(fwrite(p1,sizeof(struct Sign),1,fp)!=1) printf("写入错误"); p1=p1->next; } fclose(fp); } printf("\n OK! \n"); } break; //只要找到,最终肯定要跳出循环! } //没找到则继续比较下一个节点 p2=p1; p1=p1->next; } if(y==0) { printf("对不起,没有找到要删除的通讯名单,请检查你要删除的姓名是否正确\n"); } system("pause"); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)