перезаписать конкретную строку в текстовом файле? - PullRequest
2 голосов
/ 02 декабря 2009

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

Ответы [ 2 ]

6 голосов
/ 02 декабря 2009

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

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

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

0 голосов
/ 02 декабря 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...