C 語言的 scanf/printf 雖然強大,但存在格式字串易出錯、類型安全性差、難以擴展自定義類型等痛點。C++ 引入 流(Stream) 概念,將輸入輸出視為字節序列流動,提供類型安全、可擴展、語法直觀的 iostream 庫。
<iostream>:標準輸入輸出流頭文件(Input Output Stream)。cin:istream 類對象,對應標準輸入(鍵盤)。cout:ostream 類對象,對應標準輸出(螢幕)。cerr:ostream 類對象,對應標準錯誤輸出(無緩衝)。注意:
cin/cout是預建對象,而非關鍵字。標準庫在程式啟動前已自動構造好,可直接使用。
// 輸出:<< 運算符鏈式調用
cout << "Please input an int number:" << endl;
cout << "The value is " << x << " and " << y << '\n';
// 輸入:>> 運算符自動推導類型
cin >> x >> y; // 連續讀取,空白字符作分隔
endl:換行並刷新緩衝區(等價 '\n' << flush)。\n:僅換行,不刷新,性能略優。<</>> 經重載支援所有內建類型,無需格式字串,類型安全。本文僅展示基礎用法。iostream 還提供:
hex, setw, setprecision 等)。fstream)、字符串流(sstream)。ios::sync_with_stdio(false))大幅提升性能。後續章節將深入講解運算符重載原理,揭開 cin/cout 背後的類設計奧秘。
cin/cout,代碼更清晰、可維護。ios::sync_with_stdio(false); cin.tie(nullptr);。cerr 輸出診斷信息,不干擾正常輸出管道。