C++基础(1)中,我们介绍了C++程序的基本结构,还是简单的四则运算。让人看起来,这个编程也没什么了不起,只是一个计算器而已,每次都要修改代码来改变输出结果。

但是大家都知道,真正的程序是可以接受我们的输入信息,然后经过运算后,输出结果。今天我们就来学习C++程序的输入并且赋值的操作。

赋值操作

在C++中,“=”是赋值运算符,而不表示“等于”判断逻辑运算符。赋值语句是由赋值表达式再加上分号构成的表达式语句(变量=表达式;),它是程序中常用的语句之一。

说明

1.赋值运算符“=”右边的表达式也可以是赋值表达式(变量=表达式),因此, 变量=(变量=表达式);这个表达式也是成立的,只不过是一个嵌套的赋值表达式。将其分开之后,变成这样:变量=变量=…=表达式;

如,“a=b=c=d=e=5;”,等价于:e=5;d=e;c=d;b=c;a=b;

2.在赋值运算时,如果运算符“=”两边的数据类型不相同,系统将会自动进行类型 转换,即,将运算符“=”右边的数据类型自动转换成左边变量的数据类型。

如,当“=”左边是整型变量而右边是浮点型时,在赋值操作中,将去掉“=”右边数据的小数部分并截取左边整型变量对应的有效位数。具体在后面介绍变量类型时,详细说明。

赋值操作代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include<iostream>//使用cin,cout,必须调用iostream库
using namespace std;
int main(){
    int a,b,c;	//定义三个变量
    a = 2;		//2赋值给a
    b = 3;		//3赋值给b
    c = a;
    a = b;
    b = c;
    cout << "a=" << a << "," << "b=" << b << endl;
    return 0;
}

运行结果:

a=3,b=2

上述程序是通过一个中间变量c,通过三次赋值操作,将a和b的值进行了互换。可以理解成,如果想把一瓶可乐和一瓶雪碧进行换瓶,这时容易想到拿一个空瓶子过来,将可乐倒到空瓶中,将雪碧倒到可乐瓶中,将原来空瓶中的可乐倒到雪碧瓶中。

输入操作

仍然是上面那个例子,我们要求随意输入两个整数,把他们的位置进行交换。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#include<iostream>//使用cin,cout,必须调用iostream库
using namespace std;
int main(){
    int a,b,c;	//定义三个变量
	cin >> a >> b;//输入两个值,并且分别赋值给a和b
    c = a;
    a = b;
    b = c;
    cout << a << endl << b << endl;
    return 0;
}

输入:

2
3

运行结果:

3
2

用 cin 很容易将输入的两个数字,按照顺序依次赋值给a和b。如果想按照一定的格式来输入数据,还可以用scanf来进行操作。

例如,计算一个圆的面积,输入圆的半径,输出圆的面积。根据几何知识,圆的面积=π×r^2。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
//计算圆的面积
#include<cstdio>//使用scanf,printf,必须调用cstdio库
using namespace std;
int main(){
    const float PI = 3.14159; //定义常数π
    float r,s;	//定义变量r,半径,面积
	scanf("%f",&r);//输入r的值
    s = PI * r *r;
    printf("%0.3f", s);
    return 0;
}

输入:

2

运行结果:

12.566

上面程序中,scanf函数中的“%f”叫做占位符,%f代表输入的数据是浮点型数据与定义的float相对应。&r表示将输入数值赋值给变量r,r前面的“&”不能省略,这是和cin不同的地方。

注意

本篇介绍了两种输入的函数–cin和scanf,这两个函数调用的标准库、使用方法都不一样。

公众号:格致书院