我可以问iostream它是否可写吗?
Can I ask an iostream if it is writeable?
在我的代码中,我传递了一个对iostream的引用,在这种情况下,它最终是一个文件。
有没有办法查明,当它被打开时,它是否被设置为[in|out]而不仅仅是[in]?
在查看了IOS, iostream, ostream的所有成员后,我没有看到任何方法可以检索使用的openmode
标志。我猜你必须尝试写一些东西给你的引用,并捕捉它抛出的任何错误。或者根据如何设置,检查bad()的结果。
将openmode
传递给std::streambuf
,但是没有方法来检索它。知道文件是否为写操作打开的唯一方法是尝试写并检查f.fail()
,或者可选的f.bad()
(相当于f.rdstate() & std::fstream::badbit
)。
…的
if ( dynamic_cast<ostream*>( MyStreamPtr ) == 0 )
{
// Not for output...
}
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- 是否可以从int转换为enum类类型
- 是否可以用"iostream"包装现有的TCP/OOpenSSL会话
- Boost asio ip tcp iostream 是否支持异步?
- iostream 是否占用堆栈空间
- iostream是否使用重载或模板
- C++ 仅使用 #iostream 检查输入是否为浮点数
- 键入 <iostream>#include 时,是否包含模板?
- C++如何检查流(iostream)是否可查找
- 是否可以轮询标准C++iostream操纵器的状态
- 如何可移植地检测编译器是否支持 <iostream> vs <iostream.h>
- 是否会从 <iostream.h> 更改为<iostream>缓冲区溢出?
- 我可以问iostream它是否可写吗?