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 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么