public member function
<ios> <iostream>
std::ios::fail
檢查 failbit 或 badbit 是否已設定
如果流的 failbit 或 badbit 錯誤狀態標誌 中的一個(或兩者)被設定,則返回 true
。
當輸入操作期間發生錯誤時,至少會設定這些標誌中的一個。
failbit 通常由操作設定,當錯誤與操作本身的內部邏輯相關時;流上的進一步操作可能仍然可行。而 badbit 通常在錯誤涉及流的完整性丟失時設定,即使嘗試對流進行其他操作,這種完整性丟失很可能會持續存在。badbit 可透過呼叫成員函式 bad 獨立檢查。
iostate 值 (成員常量) | 表示 | 檢查狀態標誌的函式 |
good() | eof() | fail() | bad() | rdstate() |
goodbit | 無錯誤(值為零 iostate) | true | false | false | false | goodbit |
eofbit | 到達檔案尾 | false | true | false | false | eofbit |
failbit | I/O 操作的邏輯錯誤 | false | false | true | false | failbit |
badbit | I/O 操作的讀/寫錯誤 | false | false | true | true | badbit |
eofbit、failbit 和 badbit 是具有實現定義值的成員常量,可以進行組合(就像使用按位 OR 運算子一樣)。
goodbit 為零,表示其他位均未設定。
到達檔案結尾會設定 eofbit。但請注意,到達檔案結尾的操作也可能設定 failbit,如果這會導致它們失敗(從而同時設定 eofbit 和 failbit)。
此函式是 ios::operator! 的同義詞。
返回值
如果設定了 badbit 和/或 failbit,則為 true
。
否則返回 false
。
資料競爭
訪問流物件。
併發訪問同一個流物件可能導致資料爭用。
異常安全
強保證: 如果丟擲異常,流不會發生任何改變。