public member function
<fstream>

std::ifstream::close

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

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

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

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

請注意,當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;
}

資料競爭

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

異常安全

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

另見