Files
chouka/第03课-听玩家的话.md
T
2026-05-10 09:00:14 +08:00

4.4 KiB
Raw Blame History

第 3 课:听玩家的话(键盘输入)

本课目标:学会用 std::cin 从键盘读入数字,存进已经学过的 int 变量 里。这样游戏可以问「你想抽几次?」「你有多少金币?」而不是写死在代码里。

复习:第 1 课 cout 输出;第 2 课 int 变量。本课把 玩家输入变量 连起来。


1. 这一课要搞懂什么

  • std::cout <<:程序 往外说(屏幕上看得到)。
  • std::cin >>:程序 往里收(你在键盘上打字,程序读进来)。
  • >> 像一个小漏斗:右边的变量名表示「读到的数放进哪个盒子」。

顺序很重要:一般先 cout 写一句提示,再 cin 读入,玩家才知道该输入什么。


2. 第一个会「听人话」的程序

保存为 lesson3.cpp(或你喜欢的名字,扩展名 .cpp):

#include <iostream>

int main() {
    int pulls = 0;
    std::cout << "你想抽几次?";
    std::cin >> pulls;
    std::cout << "好,我们准备抽 " << pulls << " 次\n";
    return 0;
}

每一部分在说什么

代码 意思(小朋友版)
int pulls = 0; 先准备一个整数盒子,里面暂时当 0(读入后会被覆盖)。
std::cout << "你想抽几次?"; 屏幕上显示问题,不换行也可以,光标停在同一行等输入。
std::cin >> pulls; 等你按回车,把输入的 整数 放进 pulls
下一行 cout 把盒子里的数说出来,确认程序真的记住了。

编译运行后,输入一个整数(例如 5),回车,应看到:好,我们准备抽 5 次


3. 提示语要清楚

玩家不知道要输入什么时会发呆,所以:

  • 问题用 cout 写清楚。
  • 可以在提示里写「请输入整数」或「输入数字后按回车」。
std::cout << "请输入你想抽的次数(整数),然后按回车:";
std::cin >> pulls;

4. 一次读两个数(进阶)

抽卡可以既要「次数」又要「金币」,可以连着写两次 cin

#include <iostream>

int main() {
    int pulls = 0;
    int coins = 0;
    std::cout << "抽几次?";
    std::cin >> pulls;
    std::cout << "现在有多少金币?";
    std::cin >> coins;
    std::cout << "收到:抽 " << pulls << " 次,金币 " << coins << "\n";
    return 0;
}

运行时要 输入两次:第一次回车后,再问第二个数。


5. 和抽卡游戏的关系

想法 做法
玩家决定抽几次 cin >> pulls
玩家报金币数量 cin >> coins
以后扣金币、减次数 用第 2 课的变量和赋值、pulls - 1

本课只保证:能读进来、能显示出来。随机抽结果在第 4 课。


6. 怎么编译和运行

clang++ -std=c++17 -o lesson3 lesson3.cpp
./lesson3

输入数字后一定要按 回车,程序才会继续。


7. 本课课堂小练习

  1. 只用一个程序:先 cout 问「你叫什么名字?」——名字是 文字,本课先不学 string,可以改成问「你的幸运数字是几?」用 int lucky + cin 读入并打印。
  2. 做「抽几次 + 金币」两段提问(用上文第 4 节的结构),最后输出一句自己编的话,里面必须用到 pullscoins

8. 本课课后作业(选做)

  • 故意在问「整数」时输入 字母符号,看程序会怎样(可能卡住或出错,先观察,以后会学更稳妥的写法)。
  • 问家长:cin >> pulls 后面的 >>cout 里的 << 方向为什么相反?(一个往里收,一个往外送,像箭头方向。)

9. 常见小问题

  • 输入完没反应:检查是否按了回车;是否在等待第二个数(读两次就要输入两次)。
  • 想输入中文名字:要用 std::string,下几课会用到时再扩展;本课整数输入用数字即可。
  • 一次想输入多个数:可以在一行里用空格隔开两个整数,例如 3 50,然后 std::cin >> pulls >> coins;(试一试当拓展)。

10. 下一课预告

第 4 课会学 随机数:每次抽卡结果不一样——randsrand 和「种子」,为真正的 抽卡运气 做准备。


学完请家长在 学习进度与状态.md 里更新第 3 课的状态与作业完成情况。

下一课文档第04课-运气来了.md