Удаление последней строки из файла
Каким образом можно реализовать удаление последней строки из файла. Имеются данные в файле
- Sergey_Kotomkin:154:8(777)777-77-77:
- Maks_Loxin:84:8(952)748-41-70:
- Andrey_Serov:14:8(952)747-42-70:
- Aleks_Sagin:14:8(952)509-08-07:
- Dimon_Wanow:17:8(785)124-47-45:
Последнюю строку нужно убрать Есть код на добавление в файл
void Create()
{
char vvod[256];
printf("Введтите запись типа:\n");
printf("First_SecondName:KabNumber:X(XXX)XXX-XX-XX:\n");
scanf("%s", &vvod);
FILE *file = fopen(FNAME, "ab");
fprintf(file, "\n%s", vvod);
fclose(file);
}
void Delite()
{
}
Ответы (1 шт):
Автор решения: Sergey
→ Ссылка
На псевдокоде:
ЧИТАТЬ первую запись в буфер
ЦИКЛ (Цикл пока не конец файла)
ЧИТАТЬ следующую запись
ЕСЛИ НЕ конец файла
ПИСАТЬ буфер
КОПИРОВАТЬ результат чтения в буфер
ПРОДОЛЖИТЬ цикл
ИНАЧЕ
ЗАВЕРШИТЬ цикл
Смысл простой: после каждой операции чтения пишем НЕ текущий результат чтения, а предшествующий буфер. Если достигнут конец файла, последняя запись буфера не выполняется. Фактически происходит удаление последней записи.