首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法检查istream是否以二进制模式打开?

有没有办法检查istream是否以二进制模式打开?
EN

Stack Overflow用户
提问于 2008-10-22 02:11:47
回答 2查看 4.8K关注 0票数 22

我使用的istream可以是stream stream、ifstream或用户定义的流类型,我需要知道ifstream是否是以二进制模式打开的(所以我可以抛出一个异常)。我尝试过以下方法:

代码语言:javascript
复制
if ((_is.flags() & ios::binary) == 0)
    throw exception(...)

但不会抛出任何异常。在这种情况下,测试失败,因为_is.flags()返回0x201,而ios::binary为0x20。有没有办法找出一个流是否是以文本模式打开的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-10-22 02:23:23

ios_base::openmode ()返回格式化标志的ios_base::fmtflags,而binary是一个二进制标志。我不确定是否有办法在流已经打开后找出这些问题。我在想也许streambuf类中有一个虚拟成员可以提供帮助,但似乎没有。

票数 17
EN

Stack Overflow用户

发布于 2008-10-22 02:22:32

不,没有办法对此进行测试。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/224234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档