做个商品管理系统,但删除模块执行后无法删除,求指教。
做个商品管理系统,但删除模块执行后无法删除,求指教。 删除模块代码:
void del()
{
FILE *fp;
int snum,i,j,m=0;
char ch[2];
if((fp=fopen("data.txt","ab+"))==NULL)
{
printf("不能打开文件!\n");
return;
}
while(!feof(fp))
if(fread(&comm[m],LEN,1,fp)==1)
m++;
fclose(fp);
if(m==0)
{
printf("没有记录!\n请按任意键返回主菜单。\n");
return;
}
printf("请输入编号:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==comm[i].num)
break;
if(i==m)
{
printf("\n没有找到该记录!\n请按任意键返回主菜单。\n");
getchar();
return;
}
printf("已经找到该记录,是否删除?(y/n)\n");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
for(j=i;j<m;j++)
comm[j]=comm[j+1];
m--;
printf("成功删除!\n请按任意键返回主菜单。\n");
}
if((fp=fopen("data","wb"))==NULL)
{
printf("不能打开!\n请按任意键返回主菜单。\n");
return;
}
for(j=0;j<m;j++)
if(fwrite(&comm[j],LEN,1,fp)!=1)
{
printf("不能保存!\n请按任意键返回主菜单。\n");
getch();
}
fclose(fp);
}