女孩和机器人一起思考

一起动脑筋 · 先看一个小故事

机器人不知道你有几颗糖,必须先问你。你输入 3,它再告诉你加两颗后有多少。

把过程摊开来看

沿着编号看一遍,再用自己的话讲一遍
  1. 输入键入 3
  2. 保存candies 变成 3
  3. 计算3 加 2
  4. 输出显示 5

std::cin 常用于读取输入,std::cout 常用于输出。

输入把外面的数据带进程序;输出把结果送出来。变量连接这两个方向,让程序记住刚收到的数。

01程序为什么需要输入和输出?

很多程序都需要接收数据,再把处理结果告诉我们。

输入处理输出

02cout 是怎样输出的?

std::cout << "Score: " << 95 << '\n';

std::cout 是标准输出流对象,<< 把右边的数据依次写进输出流。

03cin 是怎样输入的?

int age;
std::cin >> age;

std::cin 是标准输入流对象,>> 会按照变量类型尝试读取并转换输入。

04一个完整的小例子

#include <iostream>

int main() {
    int a, b;
    std::cin >> a >> b;
    std::cout << a + b << '\n';
    return 0;
}

输入 3 5,程序会输出 8

05输入的数据怎样变成变量?

终端输入本质上是一串字符,std::cin 会根据目标变量类型尝试转换。给整数变量输入 hello 时,输入会失败。

06cin 为什么会受空格和换行影响?

使用普通 >> 读取数字或单词时,前导空白通常会被跳过,空格、Tab、换行常作为分隔。读取一整行文字常用 std::getline

07程序真的在和我们聊天吗?

“让程序和我们说话”只是比喻。更准确地说,cin 和 cout 是输入输出数据流

你已经知道了什么

  • cin 和 cout 属于 C++ 标准输入输出流。
  • cout 写标准输出,cin 读标准输入。
  • 输入字符会根据变量类型尝试转换。
  • 普通 >> 读取常用空白分隔数据。
  • 读取整行文本时可以使用 getline。

轮到你来试一试

程序要求两个整数,你只输入一个就停下,它可能为什么没有给出结果?

想好了吗?点开看解释

它可能仍在等待第二个输入。先核对输入格式和数量,别马上认定程序坏了。