3

如何在 c 中覆盖文本文件上的特定行?我有多个变量的值需要写入文件。

4

2 回答 2

7

这仅在新行与旧行具有相同大小时才有效:

  • 在模式下打开文件a+
  • fseek()到文件的开头
  • 在阅读下一行之前,使用ftell()注意行首
  • 阅读该行
  • 如果它是您想要的行,请fseek()再次使用结果ftell()并使用fwrite()它来覆盖它。

如果行的长度发生变化,您必须复制该文件。

于 2009-12-02T13:03:24.550 回答
0

由于文件(从 C 标准库的角度来看)不是面向行的,而只是一个字符序列(或二进制模式下的字节),因此您不能期望在行级轻松编辑它们。

正如 Aaron 所描述的,如果您的替换字符数完全相同,您当然可以替换构成该行的字符。

您还可以(也许)通过在末尾(行终止符之前)填充空格来插入较短的替换。这当然有点粗俗。

于 2009-12-02T13:23:47.993 回答