перезаписать определенную строку в текстовом файле?

StackOverflow https://stackoverflow.com/questions/1832757

Вопрос

как мне перезаписать определенную строку в текстовом файле в c?.У меня есть значения нескольких переменных, которые необходимо записать в файл.

Это было полезно?

Решение

Это работает только тогда, когда новая строка имеет тот же размер, что и старая:

  • Откройте файл в режиме a+
  • fseek() в начало файла
  • Прежде чем читать следующую строку, используйте ftell() отметить начало строки
  • Прочтите строку
  • Если это та линия, которая вам нужна, fseek() снова с результатом ftell() и использовать fwrite() чтобы перезаписать его.

Если длина строки изменится, необходимо скопировать файл.

Другие советы

Поскольку файлы (с точки зрения стандартной библиотеки C) не ориентированы на строки, а представляют собой просто последовательность символов (или байтов в двоичном режиме), вы не можете рассчитывать на то, что их будет легко редактировать на уровне строки.

Как описал Аарон, вы, конечно, можете заменить символы, составляющие строку, если ваша замена имеет точно такое же количество символов.

Вы также можете (возможно) вставить более короткую замену, дополнив пробелами в конце (перед знаком конца строки).Это, конечно, немного грубо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top