覆盖文本文件中的特定行?

时间:2009-12-02 13:00:33

标签: c file variables file-writing

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

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:0)

由于文件(从C标准库的角度来看)不是面向行的,而只是一系列字符(或二进制模式下的字节),所以你不能期望在行级编辑它们容易。

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

您也可以(可能)通过填充在末尾(在行终止符之前)添加空格来插入更短的替换。那当然有点粗糙。