【发布时间】:2020-06-07 16:56:10
【问题描述】:
示例:我正在遍历一棵树并基于前序遍历进行写作。
这是伪代码:
void func x ('','')
{
do something
helper (char * filename, thing to be written);
}
void helper (char * filename, thing to be written)
{
FILE * fp = fopen (filename,"w");
fwrite(, , ,fp);
fclose(fp);
return 0;
}
它会覆盖以前的条目吗?如果是这样,我该如何防止这种情况?有没有更好的方法来做到这一点?
【问题讨论】:
-
如果您不希望它被覆盖,那么要么只打开文件一次,然后对每个函数调用使用相同的
fp,或者使用fopen和"a+"进行文件追加。有关详细信息,请参阅fopen man page。 -
@kaylum 谢谢。那么我可以将
fp作为参数传递给辅助函数吗? -
@fresh42juice — 是的,将打开的文件指针传递给
helper()。不要关闭helper()中的文件指针。