如何在 c 中覆盖文本文件上的特定行?我有多个变量的值需要写入文件。
问问题
4130 次
2 回答
7
这仅在新行与旧行具有相同大小时才有效:
- 在模式下打开文件
a+
fseek()
到文件的开头- 在阅读下一行之前,使用
ftell()
注意行首 - 阅读该行
- 如果它是您想要的行,请
fseek()
再次使用结果ftell()
并使用fwrite()
它来覆盖它。
如果行的长度发生变化,您必须复制该文件。
于 2009-12-02T13:03:24.550 回答
0
由于文件(从 C 标准库的角度来看)不是面向行的,而只是一个字符序列(或二进制模式下的字节),因此您不能期望在行级轻松编辑它们。
正如 Aaron 所描述的,如果您的替换字符数完全相同,您当然可以替换构成该行的字符。
您还可以(也许)通过在末尾(行终止符之前)填充空格来插入较短的替换。这当然有点粗俗。
于 2009-12-02T13:23:47.993 回答