代码之家  ›  专栏  ›  技术社区  ›  Ferruccio

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

  •  18
  • Ferruccio  · 技术社区  · 16 年前

    if ((_is.flags() & ios::binary) == 0)
        throw exception(...)
    

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

    2 回复  |  直到 16 年前
        1
  •  17
  •   Greg Rogers    16 年前

    flags()返回 ios_base::fmtflags 这是格式化标志,而二进制是 ios_base::openmode 旗帜我不确定一旦溪流已经开放,是否有办法找到这些。我在想,也许streambuf类中有一个虚拟成员可以提供帮助,但实际上似乎没有。

        2
  •  7
  •   Jens    9 年前

    不,没有办法测试这个。