對於在C++中執行文件IO,我們使用ofstream,ifstream和fstream類。C++文件流打開模式歧義
- ofstream的:Stream類對文件
- ifstream的寫:Stream類從文件
- fstream的閱讀:Stream類來讀取和寫入從/到文件
的將文件與流對象相關聯的過程稱爲「打開文件」。 打開文件時,我們可以指定打開文件的模式。 我的查詢與ios::out
及ios:in
模式相關。
當我創建一個ofstream
對象,並打開該文件ios::in
模式,我能夠 寫入該文件,但只有當它已經建立(與ios::out
模式文件,如果它不存在也創建)。
但是當我創建ifstream
對象並用ios::out
模式打開文件時,我能夠從文件中讀取。
我的問題是爲什麼這些模式(ios::in
/ios::out
)由語言提供的當流(ifstream
/ofstream
)的種類本身指定哪個類型的操作(輸入/輸出)的正在執行?
而且爲什麼這個曖昧的用法(ofstream
與ios::in
和ifstream
與ios::out
)的作品在一種情況下,在另一個失敗(雖然只有當文件尚不存在)?