2016-03-25 36 views
0

我正在學習LearnCpp網站,並且遇到了這一行:「如果發生錯誤並且流設置爲goodbit以外的任何其他流,則該流上的其他流操作將被忽略。可以通過調用清除()函數「。然而在ios_base類中,我注意到這些標誌被設置爲靜態,這意味着它們由類的每個實例共享,那麼不是說如果例如cin將fatalbit標誌設置爲true,則istream類的所有其他實例都會贏得'工作?I/O流標誌如何工作?

+3

標誌本身沒有改變,它們是靜態常量。每個標準流中存在的底層位掩碼有哪些變化。 – 0x499602D2

+0

@ 0x499602D2您應該將此作爲答案發布,因爲它是正確的。 –

回答

3

標誌本身沒有改變,它們是靜態常量。每個標準流中存在的底層位掩碼有哪些變化。 clear()所做的是重置掩碼並設置提供的標誌(默認爲ios_base::goodbit)。