C++ 初学者指南 第一篇(7)

必备技能1.7:从键盘读取输入
    前面的程序中使用的都是显示指定的数据。例如,计算面积的程序计算的是长为7,宽为5的矩形的面积,矩形的尺寸本身就是程序的一部分。然而,不管矩形的尺寸是多少,其面积的计算方法都是一样的。因此,如果能够提示用户从键盘输入矩形的尺寸,然后计算矩形的面积的话,那么这个程序将够有用一些。
    我们可以使用>>运算符来使用户从键盘输入数据到程序中。这就是C++中的输入运算符。通常使用下面的形式从键盘获取数据
cin>> var;
其中,cin是另外一个预先定义好的标识符。它代表控制台输入,这是C++自动支持的。缺省情况下,cin是和键盘绑定的,它也可以被重定向到其它的设备上。var代表接收输入的变量。
    下面重写计算面积的程序,允许用户输入矩形的尺寸:

/*
    用来计算矩形面积的交互式程序
*/
#include <iostream>
using namespace std;
int main()
{
    int lenght; // 声明一个变量
    int width;  // 声明另外一个变量
    cout << "Enter the length:";
    cin >> length; //从键盘输入长度
    cout << "Enter the width:";
   cin >> width; //从键盘输入宽度
    cout << "The area is ";
    cout << length * width; //输出面积
    return 0;
}

运行的结果可能如下:
Enter the length: 8
Enter the widht: 3
The area is 24
请注意下面的几行:
cout << "Enter the length:"
cin >> length; //从键盘输入长度
cout语句提示用户输入数据。cin语句读取用户输入的数据,并把值存储在变量length中。于是,用户键入的数值(就本例中的程序,用户必须输入一个整型数)就被存放在了>>右侧的变量中(本例中就是length)。在执行完毕cin语句后,变量length存放的就是矩形的长度(如果用户键入的是非数字,变量lenght的值将会是0)。提示用户输入宽度和从键盘读取矩形长度的语句工作原理是一样的。

一些输出选项
    到目前为止,我们一直使用的都是cout的最简单的形式。然而,cout可用来输出更复杂的语句。下面是两个有用的技巧。首先,我们可以使用一个cout语句输出多条信息。比如,在计算面积的程序中,我们使用下面的两行来输出面积:
cout << "The area is ";
cout << length * width;
这两行代码可以使用下面更方便的语句来表达:
cout << "The ares is " << length * width;
这种方式在同一个cout语句中使用了两个输出运算符,这将在输出字符串"Ther area is "后接着输出面积。通常情况下,我们可以在一条输出语句中连接多个输出运算符,每个输出项单独使用一个运算符即可。
    第二个技巧,到目前为止我们还没有换行输出,也就是回车。但是不久我们就需要这样输出了。在字符串中我们使用"/n"表示换行,试试下面的程序就可以看到"/n"的效果了。

/* 
    这个程序演示了/n的用法,可以输出换行
*/
#include <iostream>
using namespace std;
int main()
{
    cout << "one\n";
    cout << "two\n";
    cout << "three";
    cout << "four";
    return 0;
}
这段程序的输出如下:
one
two
threefour
    换行字符可以被放置在字符串中的任意位置,并不一定是放置在最后。在理解了换行字符的作用后,就可以自己写程序看看结果了。

练习:
    1.C++中的输入运算符是哪个?
    2.缺省情况下,cin是和那个设备进行绑定的?
    3./n代表什么?
答案
    1.输入运算符是>>
    2.c缺省地是和键盘绑定。
    3./n代表换行字符。

其它的数据类型
    在前面的程序中,我们使用的都是int类型的变量。int类型的变量只能用来存储整型数。当需要存储小数的时候,int类型的变量就不能使用了。比如,一个int类型的变量可以用来存储值18,但是不能用来存储值18.3。幸运的是,int类型只是C++中定义的几种数据类型之一。C++定义了两种浮点类型来表示小数:float和double类型,它们分别代表单精度和双精度的小数。其中,double可能是最常用的了。
    可以采用类似下面的方式来声明一个double类型的变量:
double result;
这里,result是变量的名称,它的类型是double类型的。因为它的类型是浮点类型,因此可以被用来存放诸如88.56或者-107.03之类的数据。
为了更好地理理解int和double类型的区别,可以试一试下面的程序:

/* 
这个程序展示了int 类型和double类型的区别
*/
#include <iostream>
using namespace std;
int main()
{
    int ivar; //声明一个整形的变量
    double dvar; //声明一个浮点型的变量
    ivar = 100;//给ivar赋值100
    dvar =100.0;//给dvar赋值100.0
    cout<< "Original value of ivar: " << ivar << "\n";
    cout<< "Original value of dvar: "<< dvar << "\n";
    cout<< "\n"; //打印一个空行
    //各自都除以3
    ivar=ivar/3;
    dvar=dvar/3.0
    cout << "ivar after division: " << ivar << "\n";
    cout << "dvar after division: " <<dvar <<"\n"
    return 0;
}

程序的输出如下:
Original value of ivar: 100
Original value of dvar: 100
ivar after division: 33
dvar after division: 33.3333
从上面的例子可以看出,当ivar除以3的时候,得到的结果是33,小数部分丢失了。而dvar除以3后,小数部分是被保留的。
    该程序中还有一个新的需要注意的地方:
cout << "/n" //输出一个空行
这句将输出一个空行。可以在需要任何需要输出空行的地方使用该语句。

 

专家解答
问:
    为什么C++中用两种不同的数据类型来分别表示整型数和浮点数了?也就是说,为什么不是所有的数据都仅仅使用一个类型了?
答:
    C++提供了不同的类型是为了程序的效率更高。比如,整形数的运算要比浮点数的运算快。因此,如果不需要小数,就没有必要引入float或者double类型带来的开销。还有就是,各种类型的数据在存储的时候所需的内存的大小也是不一样的。通过支持不同的数据类型,C++使得我们可以最好地利用系统的资源。最后,一些算法是需要一些特定类型的数据的。C++提供了大量的内置类型以提供最好的灵活性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值