小古银的官方网站(完整教程):http://www.xiaoguyin.com/
C++入门教程视频:https://www.bilibili.com/video/av20868986/
我们在第一个C++程序中使用过向终端输出字符串。现在我们需要向终端输入一个数,然后再向终端输出这个数。
这里我们用到了输入std::cin
。在C++中,输入一个数的时候,必须要用一个东西来装这个数,这样才能在程序中使用,这个东西叫做变量。
基础示例
先看以下示例:
#include <iostream>
int main(void)
{
int num = 0; // 声明变量并初始化为0,用这个变量来装输入的数
std::cout << "请输入一个数:"; // 向控制台输出一行字
std::cin >> num; // 用变量num保存从控制台输入的数
std::cout << "你输入的是:" << num << std::endl; // 按顺序输出字符串、num中保存的数和换行符
return 0;
}
假设输入123
,那么你将会在终端看到以下内容:
请输入一个数:123
你输入的是:123
基础讲解
由于输入std::cin
和输出std::cout
都在iostream
里,所以需要引入iostream
库。
以下代码是声明变量num
,它专门用于保存整数:
int num;
在它声明的时候,给它一个初始的值0
,这个过程叫做初始化:
int num = 0;
以下代码输出了请输入一个数:
。不输出换行符,那么就会在冒号后面输入;如果输出换行符,就会在下一行输入:
std::cout << "请输入一个数:";
以下代码是输入一个数,然后变量num
就会保存这个数:
std::cin >> num;
以下代码按顺序输出你输入的是:
、然后输出num
保存的数、接着输出换行符:
std::cout << "你输入的是:" << num << std::endl;
基础拓展
简述变量
变量的名字是由你来定的,叫a
也行,b
也行,一般都会以功能来命名。变量名称是有规则限制的,这些限制将在后面讲解。
变量保存一个值,这个过程叫做赋值。例如int a = 123;
,叫做:将a
赋值为123
。
仔细的你肯定发现,当我们输入小数时,程序只输出了小数的整数部分。因为,用来保存输入的变量,是一个专门保存整数的变量。
int
声明的变量叫做整型
变量。当使用int
来声明变量,这个变量就只能保存整数,而且是有范围限制的。
int
只能保存范围在[-2147483648, 2147483647]
之间的整数,如果试图将一个超出范围的值赋给int
类型的变量,编译的时候将会报错或者出现你不知道的错误。
如果你确定赋给变量的数肯定是非负的整数,这时候就可以用unsigned int
,它保存的范围是[0, 4294967295]
。unsigned int
叫做无符号整型
。
如果这个数大于无符号整型的范围,此时就需要用到long long
,它的范围很大;同样也可以用unsigned long long
。小数可以用float
和double
。对于它们的详细内容将在后面进行讲解。
简述输入和输出
仔细的你肯定看到了两个符号:<<
和>>
。假设想输出数字到终端,就可以用<<
将数字传到std::cout
;想输入数字到程序,就可以用>>
将数字从std::cin
传到变量中保存。
输入不同的值,就必须要用相对应的变量来保存。如果类型不匹配将会在运行的时候出现各种问题。
如果需要一次过输入多个值,那么,主要部分的代码可以这样写:
#include <iostream>
int main(void)
{
int a = 0;
int b = 0;
std::cin >> a >> b;
std::cout << a << b << std::endl;
return 0;
}
当输入4 6
(4
和6
之间是一个空格)的时候,按下回车,第一个值4
会传给变量a
,然后第二个值6
会传给变量b
,然后就会按顺序输出变量a
和变量b
保存的值,即先输出4
再输出6
然后换行;这样,我们就看到输出的是46
。
当然,4
和6
之间的空格可以用回车代替,即先输入4
,按下回车,再输入6
,按下回车,执行的效果是一样的。
但是如果输入的是46
,中间什么都没有,程序就会当成一个数46
来处理。而且用来分开数字的符号只能是空格或者换行,输入其他符号,是错误的做法。
补充知识(了解即可)
远古时代的声明变量和定义变量是分开的,不过现在是合在一起的,所以后面声明定义变量我都会说声明变量(注意:仅仅是变量。除了变量,其他的声明和定义是分开的)。
巩固练习
输入三个整数a
,b
,c
,然后用变量result
保存这三个整数的和,接着输出result
保存的值。