代码前面部分结果正确但是最后的删除和更名操作不执行 使用的是dev c++
void detectbook()
{
system("cls");
FILE *fp,*fp1,*fp2;
char dname[20];
char ISBN[20],name[20],author[20],pr[20],pt[20];
double price;
int n,r,i,a,flag2=1;
fp=fopen("book1.dat","r");
fp1=fopen("book1.dat","r");
fp2=fopen("book2.dat","w");
printf("请输入要删除图书的名字:\n");
scanf("%s",dname);
n=booknum();
for(a=1;a<=n;a++)
{
fscanf(fp,"%s%s%s%s%s%lf",&ISBN,&name,&author,&pr,&pt,&price);
if(!strcmp(name,dname))
{
flag2=0;
break;
}
}
fclose(fp);
if(flag2==1)
{
printf("未找到所要删除图书!\n");
fclose(fp1);
fclose(fp2);
remove("book2.dat");
}
else
{
printf("确认删除请按1,取消请按0\n");
scanf("%d",&i);
for(;i!=0&&i!=1;)
{
printf("确认删除请按1,取消请按0\n");
scanf("%d",&i);
}
if(i==0)
{
printf("图书删除失败\n");
fclose(fp1);
fclose(fp2);
remove("book2.dat");
}
else
{
n=booknum();
for(r=1;r<=n;r++)
{
fscanf(fp1,"%s%s%s%s%s%lf",ISBN,name,author,pr,pt,&price);
if(strcmp(dname,name))
{
fprintf(fp2,"%s %s %s %s %s %0.2lf\n",ISBN,name,author,pr,pt,price);
}
}
printf("图书删除成功\n");
fclose(fp1);
fclose(fp2);
remove("book1.dat");
rename("book2.dat","book1.dat");
}
}
system("pause");
}
int r = remove("book1.dat");
if(r==0)
printf("remove error!");
你测试一下,看看输出错误没