下一个程序用输入流对象cin和流读取运算符>>取得用户从键盘中输入的两个整,计算这两个值的和,并将结果用cout输出。
z程序及其输出如图1.6。
// Fig.1.6:fig01_06.cpp // Addition program #include<iostream.h> int main() { int integer1,integer2,sum; // 声明三个变量 cout<<"Enter first integer\n"; // 提示信息 cin>>integer1; // 从键盘读一个整数 cout<<"Enter second integer\n"; // 提示信息 cin>>integer2; // 从键盘读一个整数 sum=integer1+integer2; // 两整数相加,值赋给变量sum cout<<"Sum is "<< sum<< endl; // 输出和 return; // 返回0值表示程序运行成功。 }输出结果:
Enter first integer 45 Enter second integer 72 Sum is
注释语句:
// Fig. 1.6: fig01_06.cpp // Addition program
指定文件名和用途。C++预处理指令:
#include<iostream.h>
将iostream.h头文件的内容放进程序中。
前面介绍过,每个程序从main函数开始执行。左花括号表示main函数体开头,相应右花括号表示main函数体结束。下列语句:
int integer1,integer2,sum;
是个声明(declaration)。integer1,integer2和sum是变量(variable)名。变量是计算机内存中的地址,存放程序使用的值。这个声明指定变量integer1,integer2和sum的数据类型为int,表示这些变量保存整数值,如7、-11、0、31914。所有变量都应先声明名称和数据类型后才能在程序中使用。几个相同类型的变量可以在同一声明或多个声明中声明。我们可以一次只声明一个变量,但一次声明多个同类型变量更加简练。
有些程序员喜欢一行只声明一个变量,这样可以在每个声明后面插入注释语句。稍后要介绍数据类型float,(定义实数,即带小数点的数,如3.4、0.0、—11.19)和char(定义字符型数据.变量char只能保存一个小写字母、一个大写字母、一个数字或一个特殊字符,如x、$、7、*等等)。
在每个逗号(,)后面加上空格,使程序更易读。变量名是任何有效标识符(identifier)。标识符是一系列由字母、数字和下划线(_)组成的字符串,不能以数字开头。C++是区分大小写的,因此a1和A1是不同的标识符。
C++允许任意长度的标识符,但系统和C++版本可能限制标识符的长度不超过31个字符,以保证移植性。
选择有意义的变量名能使程序更清楚,只要阅读程序就可以比较容易理解程序,而不必阅读手册或使用其它注释语句。
避免用下划线和双下划线开头的标识符,因为C++内部使用这类名称。这样可以防止与编译器选择的名称冲突。
变量声明可以放在函数的任何位置,但变量声明必须放在程序使用变量之前。例如在图1.6所示的程序中,如果不用一条语句声明三个变量也可以分别声明。下列声明:
int integer1;
可以放在下列语句之前:
cln >>integerl;
下列声明:
int integer2;
可以放在下列语句之前:
cin >>integer2;
下列声明:
int sum;
可以放在下列语句之前:
sum = integer1 + integer2;
如果喜欢把声明放在函数开头,应在这些声明的结尾与该函数中的执行语句开始之间留一行空格,将这些声明与该函数中的执行语句分开。
下事句:
cout<<"Enter first integer";
在屏幕上打印字符串Enter first integer(b也称为字符串直接量(string literal)或直接量(literal)),将光标移到下一行开头。这个消息称为提示(prompt),提示用户进行特定操作。上述语句表示cout得到字符串“Enter first integer ".
下列语句:
cin>>integer1;
用输入流对象cin和流读取运算符>>取得键盘中的值。利用流读取运算符cin从标准输入流读取输入(通常是键盘输入)。上述语句表示cin提供integer1的值。
计算机执行上述语句时,等待用户输入变量integer1的值。用户输入整数值并按Enter键(或Return键),将数值发送给计算机。然后计算机将这个数(值)赋给变量integer1。程序中后面引用integer1时都使用这个值。
cout和cin流对象实现用户与计算机之间的交互。由于这个交互像对话一样,因此通常称为对话式计算(conversational computing)或交互式计算(interactive computing)。下列语句:
cout<<"Enter second integer";
在屏幕上打印”Enter second integer"字样,然后移到下一行的开头。这个语句提示用户进行操作。下列语句:
cin>>integer2;
从用户取得变量integer2的值。
赋值语句:
sum=integer1+integer2;计算变量integer1和integer2的和,然后用赋值运算符(assignment operator)"="将结果赋给变量sum。这个语句表示sum取得integer1加integer2的值。大多数计算都是在赋值语句中进行的。“=”运算符和前面的“+”运算符称为二元运算符,两个操作数是integer1和integer2。而对于“=”运算符,两个操作数是sum和表达式integer1+integer2的值。
二元运算符两边要放上空格,这样能使运算符更明显,程序更易读。
下列语句:
cout<<"Sum is"<<sum<<endl;
打印字符串"Sum is"和变量sum的数值,加上称为流操纵算子的endl(end line的缩写)。endl输出
一个换行符,然后刷新输出缓冲区,即在一些系统中,输出暂时在机器中缓存,等缓冲区满时再打印到屏幕上,endl强制立即输出到屏幕上。
注意,上述语句输出多种不同类的值,流插入运算符知道如何输出每个数据。在一个语句中使用多个流插入运算符称为连接(concatenating)、链接(chaining)或连续使用流插入操作。这样,就不必用多条输出语句输出多个数据。
计算可以在输出语句中进行。可以将上述语句合二为一:
cout<<"Sum is"<<integer1+integer2<<endl;
从而不需要变量sum。右花括号告诉计算机到达了函数main的结尾。
C++的一个强大我就是用户可以生成自己的数据类型(详见第6章),然后可以告诉C++如何用>>和<<运算符输入或输出这种类型的值(称为运算符重载,见第8章)。