如同 cin/cout 對應標準裝置,檔案操作需自行定義流物件。
ios (抽象基類) ├── istream (輸入基類) → ifstream (輸入檔案流) ├── ostream (輸出基類) → ofstream (輸出檔案流) └── iostream (輸入輸出基類) → fstream (雙向檔案流)
ifstream:繼承 istream,支援 >>、get()、getline() 等輸入操作ofstream:繼承 ostream,支援 <<、put() 等輸出操作fstream:繼承 iostream,同時支援輸入/輸出,隨機存取必備ofstream outfile; // 輸出流物件 ifstream infile; // 輸入流物件 fstream iofile; // 雙向流物件
建立後尚未關聯實體檔案,需透過 open() 或建構函式指定檔案路徑與模式。
| 標準流 | 檔案流 | 關鍵差異 |
|---|---|---|
cin (istream_withassign) | ifstream | 預設關聯鍵盤 vs 需手動關聯檔案 |
cout (ostream_withassign) | ofstream | 預設關聯螢幕 vs 需手動關聯檔案 |
理解類別體系後,接著掌握 開啟/關閉檔案、讀寫操作、狀態檢測、隨機存取 等實戰技能,即可自如驅動磁碟資料流。