流 = 有序位元組序列,對應記憶體緩衝區。輸入:裝置 → 緩衝區 → 程式;輸出:程式 → 緩衝區 → 裝置。
ios (抽象基類) ├── istream (輸入基類) → ifstream, istrstream, istream_withassign ├── ostream (輸出基類) → ofstream, ostrstream, ostream_withassign └── iostream (輸入輸出基類) → fstream, strstream, iostream_withassign
istream:支援 >>, get(), getline() 等ostream:支援 <<, put() 等iostream:多重繼承 istream + ostreamifstream/ofstream/fstream (對應 fstream 標頭)istrstream/ostrstream/strstream (對應 strstream 標頭)| 標頭檔 | 用途 |
|---|---|
<iostream> | 基本流操作、標準流物件宣告 |
<fstream> | 檔案流類別 |
<strstream> | 字串流類別 |
<iomanip> | 格式控制元 |
<stdiostream> | C/C++ I/O 混合使用 |
| 物件 | 類別 | 對應裝置 | C 對應 |
|---|---|---|---|
cin | istream_withassign | 鍵盤 | stdin |
cout | ostream_withassign | 螢幕 | stdout |
cerr | ostream_withassign | 螢幕 | stderr |
clog | ostream_withassign | 螢幕 | stderr |
建構形式:ostream cout(stdout); 將裝置指標傳入建構子完成關聯。
<< / >> 原為位移運算子,在 istream/ostream 中重載為提取/插入運算子operator<<(int), operator<<(double), operator<<(char*)...cout << "C++" 實際調用 cout.operator<<("C++")<< / >> 才能直接流式輸出入>> var:箭頭指向變數 → 資料流入變數<< var:箭頭指向外 → 資料從變數流出C++ I/O 庫以 ios 為根,分輸入/輸出/雙向三支脈,延伸至標準/檔案/字串三大領域。運算符重載實現型別安全與擴展性,標準流物件預裝裝置關聯。理解此架構,即掌握 C++ I/O 的骨幹脈絡。