如何使用 fstream 的 append 标志向文件中追加内容,该标志似乎无效。

22

我只想向日志文件写入(追加)内容。我在这里查找了信息:
http://www.cplusplus.com/reference/iostream/fstream/open/

然后我这样做了:

#include <fstream>

fstream outfile;

//outfile.open("/tmp/debug.txt" );  // works, simply for writing
outfile.open("/tmp/debug.txt", fstream::app );  // does nothing

outfile << "START" << endl;

outfile.close();

你也可以使用 ofstream,你的代码将能与它一起工作。 - isarandi
1个回答

34

使用 fstream::app|fstream::out 替代 fstream::app。没有指定 out 的情况下,app 是没有意义的(可能会认为它应该隐含 out,但实际上并不是这样)。


10
如果您不提供参数,fstream将提供默认值,但如果您提供了一个参数(如app),它就不会自动使用您的参数和默认值进行OR运算。 - CashCow
1
fstream::app并不一定意味着输出追加,但是ofstream::app表示输出追加(因为它是ofstream)。换句话说,这是流类型而不是打开模式。 - KeyC0de

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接