int delStudent() //修改数据之删除记录
{
struct Student *p1,*p2,*head;
char str_num[20];
printf("请输入你要删除的学号\n");
scanf("%s",str_num);
p1=ReadData;
p2=p1->next;
head=p1;
while(p2!=NULL)
{
if(strcmp(p1->num,str_num)==0)
{
WriteData_wb(p2);
}
else if(strcmp(p2->num,str_num)==0)
{
p1->next=p2->next;
WriteData_wb(head);
}
p2=p2->next;
p1=p1->next;
}
if(p2!=NULL)
printf("数据库里没有储存你要删除的数据\n");
printf("\n\n");
return 0;
}
你这个代码哪里来的,找到删除之后不应该停止找下一个吗?上面的都有问题了,while执行之后P2==null的