C++ 写入文件时,如何根据标志追加或不追加?

C++ 写入文件时,如何根据标志追加或不追加?,c++,C++,我知道这行不通,但它应该明确我想做什么: if (append) { std::ofstream f(fname, std::ios::app); } else { std::ofstream f(fname); } f << stuff; //etc; f.close() if(追加){ 流f的std::(fname,std::ios::app); }否则{ 流f(fname)的std::; } F 我会的 参考一个选项,特别是如果if/else中有其他逻辑,则使用

我知道这行不通,但它应该明确我想做什么:

if (append) {
   std::ofstream f(fname, std::ios::app);
} else {
   std::ofstream f(fname);
}
f << stuff; 
//etc;
f.close()
if(追加){
流f的std::(fname,std::ios::app);
}否则{
流f(fname)的std::;
}
F
我会的


参考

一个选项,特别是如果if/else中有其他逻辑,则使用:

流f的标准::; 如果(附加){ f、 打开(fname,std::ios::app); }否则{ f、 开放(fname); }
我很喜欢这个,因为你没有硬编码默认值。
std::ofstream f(fname, append ? std::ios::app : std::ios::out);
std::ofstream f;
if (append) {
   f.open(fname, std::ios::app);
} else {
   f.open(fname);
}
f << stuff; 
//etc;
f.close()