開放模式
建立檔案流時,你可以指定開啟模式。開啟模式基本上是用於控制流開啟檔案的方式的設定。
(所有模式都可以在 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::in
或 ios::out
,因為它們不是由 iostream 成員隱式設定的,儘管它們具有正確的預設值。
如果未指定開啟模式,則使用以下預設模式:
ifstream
-in
ofstream
-out
fstream
-in
和out
你可以通過設計指定的檔案開啟模式是:
模式 | 含義 | 對於 | 描述 |
---|---|---|---|
app |
附加 | 輸出 | 在檔案末尾追加資料。 |
binary |
二進位制 | 輸入輸出 | 輸入和輸出以二進位制形式完成。 |
in |
輸入 | 輸入 | 開啟檔案進行讀取。 |
out |
輸出 | 輸出 | 開啟檔案進行寫入。 |
trunc |
截短 | 輸入輸出 | 開啟時刪除檔案的內容。 |
ate |
最後 | 輸入 | 開啟時轉到檔案末尾。 |
注意: 設定 binary
模式可以按原樣讀/寫資料; 不設定它可以將換行符'\n'
字元轉換為平臺特定的行結束序列。
例如,在 Windows 上,行結束序列是 CRLF(\r\n
)。
寫:\n
=> \r\n
閱讀:\r\n
=> \n