次の関数は、名前を受け取り、All.bin という名前のバイナリ ファイルからその名前を削除します。私の知る限り、正常に動作しますが、削除機能は常にエラーを出します
void del(char *name)
{
struct database d; //strucutre variable containing name and meaning
FILE *p, *q;
p = fopen("All.bin","r"); //original file
q = fopen("temp.bin","w"); // temp file
while(fread(&d,sizeof(d),1,p))
if(strcmp(d.name,name) != 0)
fwrite(&d,sizeof(d),1,q);
fclose(p);
fclose(q);
if(remove("All.bin")!=0) //PROBLEM
printf("Error");
if(rename("temp.bin","All.bin")!=0)
printf("Error@");
getch();
}