Files

4.1 KiB
Raw Blame History

C++ 输入 (cin) 讲义

一、 程序只能算固定数据吗?

我们之前写的代码,所有的数字都是直接写在程序里的,比如 int a = 5; int b = 3;。这种写法把数据写死了。 大家思考一下,如果用户明天想算 100 + 200 怎么办?难道每次都要让程序员打开代码,改完数字再重新算一次吗?这显然是不现实的! 一个真正有价值的程序,应该是智能的——它能够随时接收用户提供的新数据,并自动计算出结果。今天,我们就要学习如何让程序接收用户提供的数据。

二、 认识 cin:控制台的数据接收员

为了让程序接收用户的键盘输入,C++ 提供了一个强大的工具:cin。

  • 含义:cin 是 Console Input(控制台输入)的缩写, c 对应着 Console, in 对应着 input。
  • 作用:让用户在黑框框里==用键盘==输入数据,然后程序会自动把这个数据==存入==我们提前准备好的==变量==中。
  • cin 使用 >> 运算符跟上准备好的变量来接收用户输入。

1. cin 的运作过程

我们来看看 cin 是如何与我们之前学习的变量配合的:

int num;
cin >> num;
cout << num;
  1. int num; \rightarrow 程序向内存申请了一个整数类型的空柜子,并在外面贴上名字标签 num。
  2. cin >> num; \rightarrow 程序==暂停运行==,等待用户操作。用户在键盘上敲下数字 7 并按下回车。**>>(称为提取符)**就像传送带一样,把键盘上的 7 抓过来,放进了名为 num 的抽屉里。
  3. cout << num; \rightarrow 获取名为 num 抽屉里的数据,并将其展示在屏幕上(输出 7)。

2. 语法与规则

输入单个数据:

==语法格式==: cin >> 变量名;

如果你想一次性让用户输入多个数据,那就需要准备多个变量,然后把传送带连起来用:

==语法格式==: cin >> 变量名 >> 变量名 >> 变量名; (可以通过 >> 变量名 的格式继续扩展)

int a, b, c; 
cin >> a; // 接收用户输入的一个整数到变量 a 中
cin >> b >> c; // 依次接收用户输入的两个整数到变量 b, c 中

输入规则: 当使用 cin >> a >> b; 时,用户在黑框框里输入数据,必须使用“空格”或者“回车”来隔开两个数字(比如输入 5 10)。cin 它只要一遇到空格或回车,就知道第一个数据输入结束了,准备把下一个数据放进第二个抽屉里。


三、 解决题目中要求有输入的题目

现在我们拥有了所有的基础工具(变量、加减乘除、输入、输出)。接下来,我们要做一道完整的带有输入程序题。务必要记住:

=="输入 -> 处理 -> 输出" 是完成程序题目的三个基本步骤。==

题目描述:请你实现输入两个整数,输出这两个整数的差。 (样例输入:2 3 \rightarrow 样例输出:-1;样例输入:10 2 \rightarrow 样例输出:8)

分析思路:

  1. 提取有效信息:题目需要什么?(==输入两个数== \rightarrow 相减 \rightarrow 输出结果)。
  2. 整理思路:
  • 准备两个变量(空抽屉)装输入的数。
  • 用 cin 把用户敲的字放进抽屉。
  • 处理数据:拿出来相减,结果放进第三个抽屉。
  • 用 cout 展示第三个抽屉。
  1. 将思路一步步翻译为C++ 代码:
int num1, num2;           // 准备抽屉
cin >> num1 >> num2;      // 接收输入
int diff = num1 - num2;   // 计算并存入新抽屉
cout << diff;             // 输出结果
  1. 编译运行:按下 F11。如果有报错,不要慌,检查是不是漏了分号,或者 >> 和 << 的方向写反了。
  2. 输入测试数据,验证结果:在弹出的黑框里输入测试用例 2 3,看看结果是不是 -1。
  3. 修正错误:如果输出不对(比如输出了 5),说明语法没问题,但是逻辑错了。回去检查代码,是不是把减号写成加号了?修改后重新测试,直到完全正确为止。