讀進來
讓程式問使用者要資料,而不是自己寫死。 · ⏱ 約 20 分鐘
你會學到三件事
- 怎麼讓程式等使用者打字(
cin)
- 為什麼
cin 的箭頭方向跟 cout 相反
- 一個變數可以先取名字、之後才裝東西
開始之前
上一課的程式是這樣:
int age = 16;
16 還是寫死的。你想換一個數字,還是得回去改程式。
這一課要讓使用者決定那個數字。
一、先留一個空位
到目前為止,取名字和裝東西都寫在同一行。其實可以分開:
int n;
這一行的意思是「我要一個叫 n 的位子,裝整數,但現在還沒東西」。
⚠️ 這時候 n 裡面裝的是垃圾——不是 0,是上一個用過這塊記憶體的人
留下來的東西。所以留了空位就要記得填,別急著印它。
二、把使用者打的東西讀進來
int main() {
int n;
cin >> n;
cout << "你打的是 " << n << endl;
return 0;
}
cin >> n; ——console input,讀進來。
注意箭頭的方向:
cout << n 資料從 n 【流出去】給螢幕
cin >> n 資料從鍵盤 【流進來】裝進 n
箭頭永遠指著資料要去的地方。 記這一件事就好,不用分別背兩個。
三、跑跑看
按「執行」,程式會停住,主控台出現一個等你打字的地方。
打 7,按 Enter:
你打的是 7
再跑一次,打別的數字——程式一個字都沒改,結果不一樣了。
這就是輸入的意義:程式描述的是「怎麼做」,資料是使用者給的。
⚠️ 另外注意 "你打的是 " 最後有一個空格。
沒有那個空格,印出來會是 你打的是7,擠在一起。
引號裡面的空格是算數的。
完成的樣子
int main() {
int n;
cin >> n;
cout << "你打的是 " << n << endl;
return 0;
}
換你了
讀進兩個數字,然後把它們都印出來:
第一個是 3
第二個是 8
提示:cin >> a >> b; 可以一次讀兩個(中間用空白或 Enter 分開),
你也可以老老實實寫兩行 cin。兩種都對。
這一課你做了什麼
- 你宣告了一個還沒裝東西的變數
- 你用
cin >> n; 讓程式停下來等使用者
- 你知道了箭頭方向指著資料要去的地方
如果卡住了
| 你看到 |
多半是因為 |
| 程式沒停就跑完了 |
cin 那行漏了,或箭頭寫成 << 了 |
| 印出一個很怪的大數字 |
忘了 cin,印的是還沒填過的垃圾值 |
| 打了字沒反應 |
要按 Enter,程式才知道你打完了 |
| 文字和數字擠在一起 |
引號裡面少一個空格 |
在編輯器打開這一課 →