您的位置:首页 > 编程语言 > C语言/C++

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

2009-11-16 21:35 204 查看
必备技能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++提供了大量的内置类型以提供最好的灵活性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: