【发布时间】:2009-12-02 13:00:32
【问题描述】:
如何在 c 中覆盖文本文件中的特定行?我有多个变量的值需要写入文件。
【问题讨论】:
标签: c file variables file-writing
如何在 c 中覆盖文本文件中的特定行?我有多个变量的值需要写入文件。
【问题讨论】:
标签: c file variables file-writing
这仅在新行与旧行大小相同时有效:
a+模式打开文件
fseek() 到文件的开头ftell() 记下该行的开头ftell() 的结果fseek() 并使用fwrite() 覆盖它。如果行的长度发生变化,则必须复制文件。
【讨论】:
由于文件(从 C 标准库的角度来看)不是面向行的,而只是一个字符序列(或二进制模式下的字节),因此您不能期望在行级编辑它们很容易。
正如 Aaron 所述,如果您的替换字符数完全相同,您当然可以替换构成该行的字符。
您还可以(也许)通过在末尾(行终止符之前)填充空格来插入较短的替换。这当然有点粗略。
【讨论】: