public member function
<fstream>

std::basic_ifstream::close

void close();
關閉檔案
關閉與物件關聯的檔案,並將其與流解除關聯。

任何待處理的輸出序列都將被寫入檔案。

如果流當前未與任何檔案關聯(即,沒有檔案成功地透過它開啟),則呼叫此函式會失敗。

流的檔案關聯由其內部流緩衝區維護
內部,該函式呼叫rdbuf()->close(),並在失敗時設定failbit

請注意,當 basic_ifstream 物件被銷燬時,任何開啟的檔案都會被自動關閉。

返回值



如果操作失敗(包括呼叫之前沒有檔案被開啟),則為流設定 failbit 狀態標誌(如果使用成員 exceptions 註冊了該狀態標誌,則可能會丟擲 ios_base::failure)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// print the content of a text file.
#include <iostream>     // std::cout
#include <fstream>      // std::ifstream

int main () {
  std::ifstream ifs;

  ifs.open ("test.txt");

  char c = ifs.get();

  while (ifs.good()) {
    std::cout << c;
    c = ifs.get();
  }

  ifs.close();

  return 0;
}

資料競爭

修改 basic_ifstream 物件。
對同一的併發訪問可能會導致資料競爭。

異常安全

基本保證:如果丟擲異常,處於有效狀態。
由內部操作引發的任何異常都會被該函式捕獲,並在關閉檔案後重新丟擲。
如果函式失敗(設定了 failbit 狀態標誌)並且為該狀態設定了成員 exceptions 以丟擲異常,則會丟擲成員型別為 failure 的異常。

另見