public member function
<fstream>

std::basic_fstream::basic_fstream

預設 (1)
basic_fstream();
initialization (2)
explicit basic_fstream (const char* filename,                        ios_base::openmode mode = ios_base::in | ios_base::out);
預設 (1)
basic_fstream();
initialization (2)
explicit basic_fstream (const char* filename,                        ios_base::openmode mode = ios_base::in | ios_base::out);explicit basic_fstream (const string& filename,                        ios_base::openmode mode = ios_base::in | ios_base::out);
copy (3)
basic_fstream (const basic_fstream&) = delete;
move (4)
basic_fstream (basic_fstream&& x);
構造物件
構造一個 basic_fstream 物件

(1) 預設建構函式
構造一個不與任何檔案關聯的 basic_fstream 物件。
在內部,其 basic_iostream 基類建構函式會接收一個指向新構造的 basic_filebuf 物件(內部檔案流緩衝區)的指標。
(2) 初始化建構函式
構造一個 basic_fstream 物件,該物件最初與由其第一個引數 (filename) 標識的檔案關聯,並以 mode 指定的模式開啟。
在內部,其 basic_iostream 基類建構函式會接收一個指向新構造的 basic_filebuf 物件(內部檔案流緩衝區)的指標。然後,使用 filenamemode 作為引數呼叫 basic_filebuf::open
如果檔案無法開啟,則設定流的failbit標誌。
(3) 複製建構函式 (已刪除)
已刪除 (無複製建構函式)。
(4) 移動建構函式
獲取 x 的內容。
首先,該函式從 x 移動構造其基類 basic_iostream 類以及 x 的內部 basic_filebuf 物件,然後透過呼叫成員函式 set_rdbuf 將它們關聯起來。
x 處於未指定但有效的狀態。
內部的 basic_filebuf 物件至少具有與 basic_fstream 物件相同的生命週期。

引數

filename
代表要開啟的檔名的字串。
有關其格式和有效性的具體說明取決於庫實現和執行環境。
mode
描述檔案請求的輸入/輸出模式的標誌。
這是一個位掩碼成員型別 openmode 的物件,由以下成員常量的組合構成:
成員常量代表access
in輸入檔案以讀模式開啟:內部流緩衝區支援輸入操作。
下可用的型別輸出檔案以寫模式開啟:內部流緩衝區支援輸出操作。
binarybinary操作以二進位制模式執行,而非文字模式。
ate在末尾輸出位置從檔案末尾開始。
appappend (追加)所有輸出操作都在檔案末尾進行,追加到其現有內容。
trunctruncate (截斷)檔案開啟前存在的任何內容都將被丟棄。
這些標誌可以透過按位或運算子(|)組合。

如果模式同時設定了 truncapp,則開啟操作失敗。如果僅設定了其中一個但未設定 out,或者同時設定了 appin,則也失敗。
如果模式同時設定了 truncapp,則開啟操作失敗。如果設定了 trunc 但未設定 out,操作也會失敗。
x
一個具有相同型別(具有相同的類模板引數 charTtraits)的 basic_fstream 物件,其值被移動。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
// fstream constructor.
#include <fstream>      // std::fstream

int main () {

  std::fstream fs ("test.txt", std::fstream::in | std::fstream::out);

  // i/o operations here

  fs.close();

  return 0;
}

資料競爭

移動建構函式 (4) 會修改 x

異常安全

-

另見