C++ 为什么fstream.open()会失败;如果模式同时设置了trunc和app;?
我花了很长时间才发现我的C++ 为什么fstream.open()会失败;如果模式同时设置了trunc和app;?,c++,io,fstream,C++,Io,Fstream,我花了很长时间才发现我的.open()调用没有打开文件,因为我同时设置了trunc和app模式选项。我是在抓到一张写在纸上的小纸条后才发现这一点的 这似乎是个奇怪的问题。为什么会这样?您不能先截断文件,然后只追加吗?或者这被认为是多余的规范?iostream打开模式大致对应于C库中的模式,fopen有一个截断的w模式和一个附加的a模式,但没有这两种模式的组合。中规定了允许的标志组合标准中的[filebuf.members]表132给出了以下可能性: P> >由于 Tunc和 App不在表中,
.open()
调用没有打开文件,因为我同时设置了trunc
和app
模式选项。我是在抓到一张写在纸上的小纸条后才发现这一点的
这似乎是个奇怪的问题。为什么会这样?您不能先截断文件,然后只追加吗?或者这被认为是多余的规范?iostream打开模式大致对应于C库中的模式,
fopen
有一个截断的w
模式和一个附加的a
模式,但没有这两种模式的组合。中规定了允许的标志组合标准中的[filebuf.members]表132给出了以下可能性:
<> P> >由于
std::fopen(s,modstr)
”即使它实际上没有在内部使用它。请参阅[filebuf.members]/2