# 【伴随编程】 一个数字复读机器
## Part1
之前你写的程序都是在被编译、运行后直接输出完成你程序所描述的任务的执行结果的。
这次,小渡要和你一起写的程序将会在运行后等待你输入一个数字,然后才完成剩下的逻辑。学习过 C 语言的同学应该会知道`scanf`函数——虽然在 C++ 语言中,C 语言的函数库也是可以直接使用的,但是我们并不推荐这么做。因为我们有更方便的库可以使用——这就是我们之前介绍的`iostream`库。现在,我们要告诉大家,如何使用流式输入对象来从键盘上提取输入数据。
在这之前,请你先引入输入输出流类库,添加命名空间`std::cin`,`std::cout`,`std::endl`,并在引入后写一个返回值为整数 000 的 `main` 函数。
```
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main(){
return 0;
}
```
## Part2
接下来,让我们在 `main` 函数内声明一个整数型变量,`number`。
你还记得怎么做吗?
## Part3
在之前,我们已经学习过输入输出流类库中的流式输出对象`cout`和运算符`<<`。这次,我们来学一个新的对象:流式输入对象`cin`以及对应的运算符`>>`。
让我们在声明了变量 `number` 之后,写下`cin >> number;`。
```
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main(){
int number;
cin>>number;
return 0;
}
```
## Part4
你是不是发现`cin`的用法和`cout`很像呢?你可以想象,键盘上输入的数据从`cin`出发,像一条水流一样沿着由运算符“ >> ”构成的管子,依次流入待输入的变量——这跟`cout`是完全对称的。
如果你想要一次输入多个变量,那你只需要再后面继续用`>>`串接更多的变量就行了——比如`cin >> a >> b;`,这一点同样也是跟`cout`完全对称的。在输入的时候,`cin`会以空格或回车为分界——比如对于`cin >> a >> b;`,当你在键盘上依次输入`1 2`的时候,第一个数字1会自动赋值给第一个变量`a`,而第二个数字2则会赋值给变量`b`.
所以呢,现在 `number` 这个变量里面应该已经存上了一个数字了。是不是有点不相信?请用流式输出对象把`number`的值输出出来,前面串接字符串"Computer says ",然后结尾加上一个换行符。
```
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main(){
int number;
cin>>number;
cout<<"Computer says"<<number<<endl;
return 0;
}
```
## Part5
干的不错!
来,让我们试试看这个“不一样的程序”吧:
* 运行这个程序
* 给这个程序一个符合我们定义的输入格式的输入。例如 323232 。
* 然后按下回车,看一看这个程序会显示什么呢?
你可以多次运行,给程序不同的输入,看看结果又会有什么不同呢?你的可爱的程序是不是变成一个“复读机器人”啦?
- 教材介绍
- 《编程初学入门常识》
- 什么是程序语言
- 【知识精讲】编程与编程语言
- 【选择测试】编程语言分类
- 【知识精讲】高级语言分类
- 【选择测试】编译与解释
- 【选择测试】程序员笑话-Java
- 熟悉键盘上用于编程的键位
- 【知识精讲】认识你的键盘
- 【知识精讲】中文和英文字符
- 【匹配测试】识别中英文符号
- 【选择测试】中英文符号的影响
- 【伴随编程】不要使用中文引号
- 【伴随编程】不要使用中文分号
- 【伴随编程】正确地输入符号
- 【选择测试】找出程序中的错误
- 初始工程师思维
- 【知识精讲】二进制思想
- 【选择测试】程序员笑话-凑整
- 【知识精讲】闭合的逻辑
- 【选择测试】程序员笑话-条件
- 程序员职业与生活
- 【知识精讲】程序员的发展方向
- 【知识精讲】程序员的装备
- 【知识精讲】程序员的健康
- 【选择测试】做一名健康的程序员
- 《C++程序设计》
- 前言
- 【知识精讲】编程与计算机科学
- 【知识精讲】编程与软件工程
- 【知识精讲】如何学习编程
- 你好C++
- 【知识精讲】你好,C++
- 【知识精讲】C++程序是如何开发的
- 【知识精讲】成为一名Power User
- 【伴随编程】让我们一起说你好
- 【知识精讲】你的第一个C++语言程序
- 【伴随命令】编译、运行你的程序
- 【伴随编程】将变量流式输出
- 【选择测试】变量的作用域
- 【知识精讲】变量与数据类型
- 【匹配测试】C++语言的入门概念
- 【知识精讲】在程序中学会换行
- 【选择测试】正确地换行
- 简单数学运算
- 【知识精讲】重新认识基本运算
- 【选择测试】运算符的理解
- 【伴随编程】做一下简单的运算
- 【伴随编程】a 的 n 次方
- 【知识精讲】数学函数
- 【伴随编程】让C++语言变成计算器
- 【伴随编程】计算球的体积
- 【匹配测试】数学世界知多少
- 【知识精讲】在程序中添加注释
- 【选择测试】正确地写注释
- 从伴随输入到变量地址
- 【伴随编程】 一个数字复读机器
- 【选择测试】理解标准输入输出
- 【伴随编程】一个加法计算器
- 【程序设计】A+B+C问题
- 【伴随编程】简单的I/O格式控制
- 【知识精讲】地址与取地址符
- 【伴随编程】看看我们的地址
- 习题一:面积与周长
- 【程序设计】矩形面积与周长
- 【程序设计】三角形面积与周长
- 【程序设计】圆形面积与周长
- 程序中的是与非
- 【知识精讲】是非的表示与关系运算
- 【伴随编程】验一验关系运算式
- 【选择测试】关系运算式求值
- 【知识精讲】如果的意义
- 【伴随编程】分段函数求值
- 【知识精讲】如果之后的如果
- 【伴随编程】五则运算器
- 【选择测试】分支的嵌套
- 【伴随编程】问号表达式
- 【知识精讲】是非之间的逻辑组合
- 【伴随编程】判断闰年
- 【程序设计】日期合法性
- 【知识精讲】多路顺序结构
- 【知识精讲】在程序中学会缩进
- 【选择测试】正确的缩进
- C++程序中的苦力
- 【知识精讲】使用循环结构
- 【选择测试】对比两种循环
- 【伴随编程】使用while循环
- 【填空测试】理解循环结构
- 【知识精讲】自减和自增运算符
- 【伴随编程】使用自增运算符
- 【知识精讲】for循环
- 【选择测试】for循环的使用
- 【程序设计】一大波好玩儿的程序
- 《代码能力快速提升》
- 《基础数据结构》
- 《搜索入门》
- 《动态规划基础》
- 《数论和基础数学》
- 《图和数基础》