最小 C++ 程序
int main() { return 0; }
- 每個程序必須有
main,OS 調用它並檢查返回值(0=成功,非0=失敗)。
- 函數定義四要素:返回類型、名稱、參數列表、函數體(花括號包裹語句塊)。
return 0; 結束函數並返回值;分號不可漏。
編譯與運行
- 源文件擴展名:
.cc、.cpp、.cxx、.cp、.C(視編譯器)。
- GNU:
g++ prog1.cc -o prog1 → 生成 prog1 或 prog1.exe。
- MSVC:
cl -GX prog1.cpp → 生成 prog1.exe。
- 運行:
./a.exe (Unix) 或 prog1.exe (Windows)。
- 查看返回值:Unix
echo $?,Windows echo %ERRORLEVEL%。
I/O 基礎:iostream 庫
- 無內建 I/O 語句,靠標準庫
iostream。
- 核心類型:
istream(輸入)、ostream(輸出);四標準對象:cin、cout、cerr(錯誤)、clog(日誌)。
- 流概念:面向設備的字符序列,隨時間產生/消費。
輸出運算符 <<
std::cout << "Enter two numbers:" << std::endl;
- 左操作數為
ostream,右為待輸出值;返回左操作數 → 支持鏈式調用。
std::endl:換行 + 刷新緩衝區(調試關鍵,防崩潰時輸出丟失)。
std:: 前綴:名稱在 std 命名空間,:: 為作用域解析運算符。
輸入運算符 >>
int v1, v2;
std::cin >> v1 >> v2; // 等價於兩條語句,返回 cin 支持鏈式
- 從流讀取並存入右操作數變量。
- 變量首次使用前賦值即無需初始化。
完整加法程序
#include
int main() {
std::cout << "Enter two numbers:" << std::endl;
int v1, v2;
std::cin >> v1 >> v2;
std::cout << "The sum of " << v1 << " and " << v2
<< " is " << v1 + v2 << std::endl;
return 0;
}
練習題
- 查閱編譯器文檔,編譯運行上述程序。
- 修改返回 -1,觀察系統錯誤碼報告差異。
- 輸出 "Hello, World"。
- 用
* 計算積而非和。
- 將長輸出語句拆分為多條獨立語句。
- 解釋鏈式輸出語句的合法性原理(運算符返回左操作數)。