Я думал, что должен прочитать весь файл в программе, затем удалить файл и снова открыть его с тем же именем, после чего я должен использовать, например, функцию for и if(!strcmp(.,.))
. Я должен fwrite
каждый элемент из структуры. Я пробовал по-любому, но это не сработало. Может ли кто-нибудь помочь мне в этом? Я буду очень признателен.Как удалить элемент в двоичном файле?
void usun_element()
{
int i;
char nazwa[100];
FILE *fp;
if((fp=fopen("katalog.bin", "rb"))==NULL)
{
printf("Brak pliku katalog na dysku.\n");
return;
}
else
printf("Wpisz nazwe, ltora chcesz usunac z listy: ");
scanf("%s", &nazwa);
otworz();
remove("katalog.bin");
otworz();
i=0;
while(i<ost)
{
if(!strcmp(nazwa,kat[i].nazwa))
{
fwrite(&kat[i].nazwa, sizeof(kat), 1, fp);
fwrite(&kat[i].typ, sizeof(kat), 1, fp);
fwrite(&kat[i].rodzaj, sizeof(kat), 1, fp);
fwrite(&kat[i].posiadane, sizeof(kat), 1, fp);
}
else
{
ost=i-1;
}
i++;
}
}
Не стесняйтесь, покажите нам свой код. Нет другого способа понять, что именно вы хотите – Dabo
Да .. Дабо правильно :) – MLSC
Я использовал несколько слов, которые не написаны на английском языке, и я подумал, что это будет какая-то проблема для понимания;) – user3212526