перезаписать определенную строку в текстовом файле?
-
11-09-2019 - |
Вопрос
как мне перезаписать определенную строку в текстовом файле в c?.У меня есть значения нескольких переменных, которые необходимо записать в файл.
Решение
Это работает только тогда, когда новая строка имеет тот же размер, что и старая:
- Откройте файл в режиме
a+
fseek()
в начало файла- Прежде чем читать следующую строку, используйте
ftell()
отметить начало строки - Прочтите строку
- Если это та линия, которая вам нужна,
fseek()
снова с результатомftell()
и использоватьfwrite()
чтобы перезаписать его.
Если длина строки изменится, необходимо скопировать файл.
Другие советы
Поскольку файлы (с точки зрения стандартной библиотеки C) не ориентированы на строки, а представляют собой просто последовательность символов (или байтов в двоичном режиме), вы не можете рассчитывать на то, что их будет легко редактировать на уровне строки.
Как описал Аарон, вы, конечно, можете заменить символы, составляющие строку, если ваша замена имеет точно такое же количество символов.
Вы также можете (возможно) вставить более короткую замену, дополнив пробелами в конце (перед знаком конца строки).Это, конечно, немного грубо.