【问题标题】:How does the I/O stream flags work?I/O 流标志如何工作?
【发布时间】:2016-03-25 14:36:57
【问题描述】:

我正在从 LearnCpp 网站学习,我遇到了这一行“如果发生错误并且流设置为除 goodbit 之外的任何内容,则该流上的进一步流操作将被忽略。可以通过调用来清除这种情况clear() 函数”。但是在 ios_base 类中,我注意到标志设置为静态,这意味着它们由该类的每个实例共享,这是否意味着如果例如 cin 将 fatalbit 标志设置为 true,则 istream 类的所有其他实例都不会'不工作?

【问题讨论】:

  • 标志本身没有改变,它们是静态常量。变化的是每个标准流中存在的底层位掩码。
  • @0x499602D2 您应该将此作为答案发布,因为它是正确的。

标签: c++ iostream


【解决方案1】:

标志本身没有改变,它们是静态常量。变化的是每个标准流中存在的底层位掩码。 clear() 所做的是重置掩码并设置提供的标志(ios_base::goodbit 我的默认值)。

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 2012-03-09
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多