Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ I/O流标志如何工作?_C++_Iostream - Fatal编程技术网

C++ I/O流标志如何工作?

C++ I/O流标志如何工作?,c++,iostream,C++,Iostream,我正在从LearnCpp网站学习,我遇到了这样一行:“如果发生错误,并且流被设置为goodbit以外的任何内容,则该流上的进一步流操作将被忽略。可以通过调用clear()函数来清除此条件。”。然而,在ios_基类中,我注意到标志被设置为静态的,这意味着它们由类的每个实例共享,这难道不意味着如果例如cin将fatalbit标志设置为true,则istream类的所有其他实例都将不起作用吗?标志本身没有改变,它们是静态常量。每个标准流中存在的底层位掩码发生了什么变化。clear()所做的是重置掩码并

我正在从LearnCpp网站学习,我遇到了这样一行:“如果发生错误,并且流被设置为goodbit以外的任何内容,则该流上的进一步流操作将被忽略。可以通过调用clear()函数来清除此条件。”。然而,在ios_基类中,我注意到标志被设置为静态的,这意味着它们由类的每个实例共享,这难道不意味着如果例如cin将fatalbit标志设置为true,则istream类的所有其他实例都将不起作用吗?

标志本身没有改变,它们是静态常量。每个标准流中存在的底层位掩码发生了什么变化。
clear()
所做的是重置掩码并设置提供的标志(
ios\u base::goodbit
my default)。

标志本身没有更改,它们是静态常量。每个标准流中存在的底层位掩码发生了什么变化。
clear()
所做的是重置掩码并设置提供的标志(
ios\u base::goodbit
my default)。

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