Дублирование последней строки из файла можно избежать, придерживаясь следующего подхода:
1. Откройте файл для чтения:
FILE* file = fopen("filename.txt", "r"); if (file == NULL) { printf("Ошибка открытия файла.n"); return; }
2. Прочитайте строки из файла и храните их в буфере. Помните, что вы должны сохранять только предыдущую строку и текущую строку, так как вам необходимо обнаружить последнюю строку:
char previousLine[256] = ""; // буфер для предыдущей строки char currentLine[256] = ""; // буфер для текущей строки while (fgets(currentLine, sizeof(currentLine), file) != NULL) { strcpy(previousLine, currentLine); // сохраняем текущую строку как предыдущую }
3. После того, как вы прочитали все строки и достигли конца файла, вы можете использовать строку previousLine
как последнюю строку:
printf("Последняя строка: %sn", previousLine);
4. Не забудьте закрыть файл после того, как закончили работу с ним:
fclose(file);
Таким образом, вы можете избежать дублирования последней строки из файла, сохраняя только предыдущую и текущую строки в буфере и используя предыдущую строку как последнюю после чтения всех строк из файла.