关于文件 图书信息删除
void delete_book(){
FILE *fp1,*fp2;
books b;
char name[10],ch;
fp1 = fopen("e:\\proj\\books.dat", "rb");
fp2 = fopen("e:\\proj\\books1.dat", "wb");
printf("\n================欢迎进入图书删除系统===============\n");
printf("请输入你要删除的书名:");
scanf("%s",name);
printf("如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");
while( ! feof(fp1) )
{
fread(&b, sizeof(books),1,fp1);
if( strcmp(name,b.book_name) != 0 ) //把图书名不同的写入文件books1
{
fwrite( &b,sizeof(books),1,fp2);
break;
}
}
fclose(fp1);
fclose(fp2);
printf("是否真的要删除该书籍?删除后信息将无法恢复 Y/N :");
getchar();
scanf( "%c", &ch);
if( ch == 'y' || ch == 'Y' )
{
fp1 = fopen("e:\\proj\\books.dat", "wb");
fp2 = fopen("e:\\proj\\books1.dat", "rb");
while( ! feof(fp2) )
{
fread( &b,sizeof(books),1,fp2 );
fwrite( &b,sizeof(books),1,fp1 );
}
fclose(fp1);
fclose(fp2);
fp2 = fopen("e:\\proj\\books1.dat","wb");
fclose(fp2);
printf("按任意键返回\n");
getch();
return;
}
else
{
printf("按任意键返回\n");
getch();
return;
}
}
请问各位大虾,这段代码错在哪里,谢谢~~~~
我出现的问题是,运行这个代码删除我要的信息时,把其他信息也一起删除了除了第二个,但是第二个却是被复制了一遍。。。
请指出错在哪里。。。谢谢。。。