如何解决为什么要为ifstream指定std :: ios :: in?
我想使用Error: Missing required argument
on main.tf line 19,in resource "azurerm_key_vault" "kv":
19: resource "azurerm_key_vault" "kv" {
The argument "tenant_id" is required,but no definition was found.
将字体文件加载到内存中并提供给FreeType。我发现标准的I / O设施有些令人沮丧。现在,我的问题是为什么我必须为ifstream
指定std::ios::in
?名称ifstream
已经暗示了输入操作,那么为什么我们需要这种不必要的混淆呢?我们可以用ifstream
指定ifstream
吗?如果不指定该怎么办?来自cppreference的示例:
out
此处未使用默认参数std::ifstream f1("test.bin",std::ios::binary);
。为什么?
解决方法
现在我的问题是为什么我必须为ifstream指定
std::ios::in
?
你不知道。它将始终通过按位“或”运算附加相应的标志。 documentation明确指出:
首先,执行与默认构造函数相同的步骤,然后 通过调用
将流与文件关联rdbuf()->open(filename,mode | std::ios_base::in)
我们可以指定ifstream不带吗?
是的。这只会要求文件缓冲区也以写入模式打开文件,可能会在进程中创建它。当然,istream
界面将不允许进行任何输出操作,但是您可以在不关闭/重新打开文件的情况下将filebuf
用于其他操作/流。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。