Удалить определённую запись по номеру, который введёт пользователь - C (СИ)

Формулировка задачи:

Всем привет! Очень надеюсь на вашу помощь. Моя задача удалить определённую запись по номеру, который введёт юзер. Пользуюсь Visual Studio 2013
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)
    {
        fread(&car1, sizeof(car1), 1, f);
        s++;
        if (s != i)
        {
            fwrite(&car1, sizeof(car1), 1, nov);
        }
    }
    fclose(f);
    fclose(nov);
}
Принцип заключается в том, что программа создаёт новый файл и просто записывает в него записи без записи под номером,который указал пользователь. Программа всё правильно делает,но она пропускает нулевой элемент,т.е. 1ый и дальше всё правильно. ПРОШУ ПОМОЩИ.

Код к задаче: «Удалить определённую запись по номеру, который введёт пользователь - C (СИ)»

textual
while (fread(&car1, sizeof(car1), 1, f) != NULL)
{
    fread(&car1, sizeof(car1), 1, f);

12   голосов, оценка 4.083 из 5


СОХРАНИТЬ ССЫЛКУ