語法書 / AA 競程語法書 上冊 / 第一單元 / cin 與 cout 的使用

1.8 cin 與 cout 的使用

幾乎所有程式都需要和使用者互動:讀入資料(cin)、印出結果(cout)。學會這個,你就能寫互動式程式了。

cout:輸出到螢幕

基本用法:

cout << 想輸出的內容;

範例:

cout << 5;              // 印出數字 5
cout << "Hello";        // 印出文字 "Hello"
cout << a;              // 印出變數 a 的值
cout << a + b;          // 印出運算結果

多個內容一起輸出:用 << 串連

cout << "a = " << a << ", b = " << b << endl;

如果 a = 3b = 5,輸出結果是:

a = 3, b = 5

特殊符號:

符號 意思 例子
endl 換行 cout << "line 1" << endl;
" " 空格 cout << a << " " << b;

Endline 範例:

cout << "A" << endl;
cout << "B" << endl;

輸出:

A
B

cin:從鍵盤讀入

基本用法:

cin >> 變數名;

範例:

int a;
cin >> a;           // 讀入一個整數到 a

程式執行時會停下來等待你輸入。你輸入「5」後,a 就會被設定為 5。

讀入多個資料:用 >> 串連

int a, b;
cin >> a >> b;      // 讀入兩個整數

cin >> 在讀數字時,會自動跳過數字之間的空白——不管你打幾個空格、還是換行,它都當成「分隔」。所以下面這幾種輸入,cin 都會讀成 a = 5b = 3

寫在同一行,中間一個空格:

5 3

寫在同一行,中間多個空格:

5     3

分成兩行輸入:

5
3

簡單說:數字之間只要有空白(空格或換行)隔開就好,幾個都沒關係。

>><< 的方向怎麼記?

初學很容易把 cin >>cout << 的箭頭方向搞混。兩個好用的記法:

  • 漏斗記法:把 >><< 想成漏斗——資料從開口大的一端,流向開口小的一端。cin >> a 是資料從 cin變數 acout << a 是資料從變數 acout
  • 箭頭指向資料要去的地方cin >> a 的箭頭指向 a(資料進變數)、cout << a 的箭頭指向 cout(資料交給輸出)。

寫錯方向(例如 cin << a)會是編譯錯誤,看到就回來想想漏斗。

完整範例

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cout << "Enter two numbers (space-separated): ";  // 提示訊息
    cin >> a >> b;                              // 讀入 a 和 b

    int sum = a + b;                           // 計算

    cout << a << " + " << b << " = " << sum << endl;  // 輸出

    return 0;
}

執行例:

Enter two numbers (space-separated): 7 8
7 + 8 = 15

動手試試看

  1. 寫一個程式,讀入三個數字,再照順序把它們印出來(除法、平均第二單元才教,這裡先練「讀入」和「輸出」)
  2. 試試看輸入的時候用空格分隔和換行分隔,都試試