如何在C中的txt文件中编辑一行?

时间:2015-03-12 00:10:49

标签: c

我试图编辑txt文件中的第一行,但由于某种原因,它会用空格字符替换下一行......

int main()
{
  FILE *myFile;
  myFile = fopen("test.txt", "r+");
  fprintf(myFile, "Hello\n");
  fclose(myFile);
}

运行代码前的txt文件:

i
like
this
运行代码后

txt文件:

Hello

this

1 个答案:

答案 0 :(得分:7)

您的代码没有替换行,而是替换了字节。你的字符串(“Hello \ n”)是六个字节长。你文件的前六个字节是“我不喜欢”。一旦你的代码被执行,你就有了“Hello \ n \ nthis” - 即“Hello”,两个换行符和“this”。

如果您只是尝试更换第一行,则需要读取整个文件,解析行,替换要替换的行,然后写出新内容。