# 【伴隨編程】 一個數字復讀機器
## 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循環的使用
- 【程序設計】一大波好玩兒的程序
- 《代碼能力快速提升》
- 《基礎數據結構》
- 《搜索入門》
- 《動態規劃基礎》
- 《數論和基礎數學》
- 《圖和數基礎》