在C中的文件末尾写入信息

时间:2014-11-05 19:21:46

标签: c file io

我想在C中的现有文件的末尾写一些信息。这是我的示例代码:

foo2(some parameter)
{
   id++
   for(i=0;i<10;i++)
    { 
      dumpfile(i)
    }
}

dumpfile(int i)
{
   f = fopen(filename,"a");
  fprintf(f,"hello : %d\n",i);

}

输出: 你好:9 你好:8 ........ ..... 你好:0

但我想要: 你好:0 你好:1 ....... ... 你好:9

问题是当我在执行后打开文件时,我看到最新信息写在文件的顶部而不是文件的末尾。它应该写在文件的末尾。如何在循环中以追加模式打开文件并在文件末尾写入信息?

1 个答案:

答案 0 :(得分:2)

通过以附加模式("a")打开文件,您将被放置在文件的末尾。

然而,代码中的错误是您没有在打开的调用之间关闭文件。

f = fopen(filename, "a");
fprintf(f, "hello: %d\n", i);
fclose(f);

如果您还要在文件中的任何位置书写,则应将其打开"r+",然后您可以使用fseek()移动到任何位置。比如到文件的末尾:

fseek(f, 0, SEEK_END);

但是文件必须已存在。

作为个人偏好,我更喜欢使用open()和朋友而不是文件。