[英]Why does fstream.open() fail “If the mode has both trunc and app set”?
我花了很.open()
才弄清楚我的.open()
调用没有打开文件,因为我同时设置了trunc
和app
模式选项。 我只是在抓到C ++文档上写的一点笔记后才想到的。
这似乎是一个奇怪的陷阱。 为什么会这样呢? 您不能截断文件然后仅追加吗? 还是这被认为是多余的规范?
标志的允许组合在标准的[filebuf.members]中指定。 表132给出了可能性:
因此,由于trunc
和app
的组合不在表中,因此打开必须失败。
iostream
打开模式大致对应于C库中的fopen
模式,而fopen
具有截断的w
模式和附加a
模式,但不能将两者组合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.