我想在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
问题是当我在执行后打开文件时,我看到最新信息写在文件的顶部而不是文件的末尾。它应该写在文件的末尾。如何在循环中以追加模式打开文件并在文件末尾写入信息?
答案 0 :(得分:2)
通过以附加模式("a"
)打开文件,您将被放置在文件的末尾。
然而,代码中的错误是您没有在打开的调用之间关闭文件。
f = fopen(filename, "a");
fprintf(f, "hello: %d\n", i);
fclose(f);
如果您还要在文件中的任何位置书写,则应将其打开"r+"
,然后您可以使用fseek()
移动到任何位置。比如到文件的末尾:
fseek(f, 0, SEEK_END);
但是文件必须已存在。
作为个人偏好,我更喜欢使用open()
和朋友而不是文件。