開放模式

建立檔案流時,你可以指定開啟模式。開啟模式基本上是用於控制流開啟檔案的方式的設定。

(所有模式都可以在 std::ios 名稱空間中找到。)

可以將開啟模式作為第二個引數提供給檔案流的建構函式或其 open() 成員函式:

std::ofstream os("foo.txt", std::ios::out | std::ios::trunc);

std::ifstream is;
is.open("foo.txt", std::ios::in | std::ios::binary);

需要注意的是,如果要設定其他標誌,則必須設定 ios::inios::out,因為它們不是由 iostream 成員隱式設定的,儘管它們具有正確的預設值。

如果未指定開啟模式,則使用以下預設模式:

  • ifstream - in
  • ofstream - out
  • fstream - inout

你可以通過設計指定的檔案開啟模式是:

模式 含義 對於 描述
app 附加 輸出 在檔案末尾追加資料。
binary 二進位制 輸入輸出 輸入和輸出以二進位制形式完成。
in 輸入 輸入 開啟檔案進行讀取。
out 輸出 輸出 開啟檔案進行寫入。
trunc 截短 輸入輸出 開啟時刪除檔案的內容。
ate 最後 輸入 開啟時轉到檔案末尾。

注意: 設定 binary 模式可以按原樣讀/寫資料; 不設定它可以將換行符'\n'字元轉換為平臺特定的行結束序列。

例如,在 Windows 上,行結束序列是 CRLF(\r\n)。
寫:\n => \r\n
閱讀:\r\n => \n