Удалить определённую запись по номеру, который введёт пользователь - C (СИ)
Формулировка задачи:
Всем привет! Очень надеюсь на вашу помощь.
Моя задача удалить определённую запись по номеру, который введёт юзер.
Пользуюсь Visual Studio 2013
Принцип заключается в том, что программа создаёт новый файл и просто записывает в него записи без записи под номером,который указал пользователь.
Программа всё правильно делает,но она пропускает нулевой элемент,т.е. 1ый и дальше всё правильно.
ПРОШУ ПОМОЩИ.
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); }
Решение задачи: «Удалить определённую запись по номеру, который введёт пользователь»
textual
Листинг программы
while (fread(&car1, sizeof(car1), 1, f) != NULL) { fread(&car1, sizeof(car1), 1, f);
Объяснение кода листинга программы
- Прочитай файл, пока не достиг конца.
- Для каждой прочитанной записи автомобиля, прочитать её данные.