你如何在 C 中写入 txt 文件的特定行

  • 本文关键字:文件 txt file output
  • 更新时间 :
  • 英文 :


我想覆盖 txt 文件中的某一行,同时保持所有其他行相同。有没有一种好而简单的方法来做到这一点?

基本上使用 Fseek() 搜索要更改的位序列,
然后使用 Fwrite() 覆盖旧文本

OBS:您需要在rw模式下打开文件才能覆盖

fopen ("myfile.txt", "wr");

使用这些引用:


http://www.cplusplus.com/reference/cstdio/fwrite/http://www.cplusplus.com/reference/cstdio/fseek/

(它说C++但适用于 C)

除非要覆盖的行的长度具有相同的字节数,否则无法在现有文件中"插入"或"删除"字节。您必须编写一个新文件:

  1. 读入所有旧行,直到需要覆盖的行,并将它们写入另一个输出流(新文件指针或stdout
  2. 新行写出到输出流
  3. 读入覆盖的行之后的所有旧行,并将这些行写入新的输出流

如果要覆盖现有字节,并且确定旧行和新行的长度完全相同,则可以:

  1. fopen() rw模式下
  2. 的文件
  3. fseek()到旧行的字节位置(或读入字符,直到达到一些预设数量的换行符等 - 基本上,您希望将文件指针移动到旧行的开头)
  4. 在旧行的字节上fwrite()新字节
  5. fclose()文件指针

如果您确实需要覆盖同一文件中的字节,并且新行的字节数比旧行少,则可以做一些技巧,用空格字符覆盖旧行的末尾,直到换行符,但更干净的解决方案是简单地编写一个新文件更新的内容。

相关内容

  • 没有找到相关文章

最新更新