Удаление определённой записи по номеру в файле
Задача: удалить определённую запись структуры по номеру, который введёт юзер.
Вот,что я сам попробовал сделать:
void udalenie()
{
int i, s;
vivod();
printf("\nNomer mashini,kotoruiu udaleaem: ");
scanf_s("%d", &i);
fopen_s(&f, "car.dat", "r");
fopen_s(&nov, "nov.dat", "wb+");
s = 0;
while (fread(&car1, sizeof(car1), 1, f) != NULL)
{
s++;
if (s != i)
{
fwrite(&car1, sizeof(car1), 1, nov);
}
}
fclose(f);
fclose(nov);
}
Не работает,как надо. У меня 3 записи. 0,1,2. КАК РАБОТАЕТ: Ввожу 0 - ничего не меняется Ввожу 1 - удаляется 0 Ввожу 2 - удаляется 1
Источник: Stack Overflow на русском