public member function
<ios> <iostream>

std::basic_ios::rdstate

iostate rdstate() const;
獲取錯誤狀態標誌
返回流的當前內部*錯誤狀態標誌*。

流上的輸入/輸出函式呼叫會自動設定內部錯誤狀態標誌以指示某些錯誤。

引數



返回值

可以包含以下狀態標誌成員常量任意組合的 ios_base::iostate 型別物件

iostate
(成員常量)
表示檢查狀態標誌的函式
good()eof()fail()bad()rdstate()
goodbit無錯誤(值為零 iostatetruefalsefalsefalsegoodbit
eofbit到達檔案尾falsetruefalsefalseeofbit
failbitI/O 操作的邏輯錯誤falsefalsetruefalsefailbit
badbitI/O 操作的讀/寫錯誤falsefalsetruetruebadbit
eofbitfailbitbadbit 是具有實現定義值的成員常量,可以進行組合(就像使用按位 OR 運算子一樣)。
goodbit 為零,表示其他位均未設定。

示例

1
2
3
4
5
6
7
8
9
10
11
// getting the state of stream objects
#include <iostream>     // std::cerr
#include <fstream>      // std::ifstream

int main () {
  std::ifstream is;
  is.open ("test.txt");
  if ( (is.rdstate() & std::ifstream::failbit ) != 0 )
    std::cerr << "Error opening 'test.txt'\n";
  return 0;
}

資料競爭

訪問流物件。
併發訪問同一個流物件可能導致資料爭用。

異常安全

強保證: 如果丟擲異常,流不會發生任何改變。

另見