1.16 简单程序:两个整数相加
下一个程序用输入流对象 cin 和流读取运算符 >> 取得用户从键盘中输入的两个整,计算这两个值的和,并将结果用 cout 输出。程序及其输出如图 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; // 返回0值表示程序运行成功。 }
输出结果:
Enter first integer 45 Enter second integer 72 Sum is 117
注释语句:
// 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。
所有变量都应先声明名称和数据类型后才能在程序中使用。几个相同类型的变量可以在同一声明或多个声明中声明。我们可以一次只声明一个变量,但一次声明多个同类型变量更加简练。
编程技巧 1.8
有些程序员喜欢一行只声明一个变量,这样可以在每个声明后面插入注释语句。
稍后要介绍数据类型 float,(定义实数,即带小数点的数,如3.4、0.0、—11.19)和 char (定义字符型数据。变量 char 只能保存一个小写字母、一个大写字母、一个数字或一个特殊字符,如 x、$、7、*等等)。
编程技巧 1.9
在每个逗号(,)后面加上空格,使程序更易读。
变量名是任何有效标识符(identifier)。标识符是一系列由字母、数字和下划线(_)组成的字符串,不能以数字开头。C++是区分大小写的,因此a1和A1是不同的标识符。
可移植教提示 1.4
C++允许任意长度的标识符,但系统和C++版本可能限制标识符的长度不超过31个字符,以保证移植性。
编程技巧 1.10
选择有意义的变量名能使程序更清楚,只要阅读程序就可以比较容易理解程序,而不必阅读手册或使用其它注释语句。
编程技巧 1.11
避免用下划线和双下划线开头的标识符,因为 C++ 内部使用这类名称。这样可以防止与编译器选择的名称冲突。
变量声明可以放在函数的任何位置,但变量声明必须放在程序使用变量之前。例如在图 1.6 所示的程序中,如果不用一条语句声明三个变量也可以分别声明。下列声明:
int integer1;
可以放在下列语句之前:
cln >> integerl;
下列声明:
int integer2;
可以放在下列语句之前:
cin >> integer2;
下列声明:
int sum;
可以放在下列语句之前:
sum = integer1 + integer2;
编程技巧巧 1.12
可执行语句之间的声明之前最好留一行空格,这样能使声明更明显,程序更清晰。
编程技巧 1.13
如果喜欢把声明放在函数开头,应在这些声明的结尾与该函数中的执行语句开始之间留一行空格,将这些声明与该函数中的执行语句分开。
下列语句:
cout<<"Enter first integer\n";
在屏幕上打印字符串 Enter first integer (b也称为字符串直接量(string literal)或直接量(literal)),将光标移到下一行开头。这个消息称为提示(prompt),提示用户进行特定操作。上述语句表示cout得到字符串“Enter first integer\n".
下列语句:
cin>>integer1;
用输入流对象cin和流读取运算符>>取得键盘中的值。利用流读取运算符cin从标准输入流读取输入(通常是键盘输入)。上述语句表示cin提供integer1的值。
计算机执行上述语句时,等待用户输入变量integer1的值。用户输入整数值并按Enter键(或Return键),将数值发送给计算机。然后计算机将这个数(值)赋给变量integer1。程序中后面引用integer1时都使用这个值。
cout 和 cin 流对象实现用户与计算机之间的交互。由于这个交互像对话一样,因此通常称为对话式计算(conversational computing)或交互式计算(interactive computing)。
下列语句:
cout<<"Enter second integer\n";
在屏幕上打印”Enter second integer"字样,然后移到下一行的开头。这个语句提示用户进行操作。下列语句:
cin>>integer2;
从用户取得变量integer2的值。
赋值语句:
sum = integer1+integer2;
计算变量 integer1 和 integer2 的和,然后用赋值运算符(assignment operator)"="将结果赋给变量sum。这个语句表示sum取得integer1加integer2的值。大多数计算都是在赋值语句中进行的。“=”运算符和前面的“+”运算符称为二元运算符,两个操作数是integer1和integer2。而对于“=”运算符,两个操作数是sum和表达式integer1+integer2的值。
编程技巧 1.14
二元运算符两边要放上空格,这样能使运算符更明显,程序更易读。
下列语句:
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章)。