头文件是C++程序对其它程序的引用,格式如下:
#include <引用文件名>指明程序采用的名字空间,“using namespace std”表示这个程序采用的全部都是std(标准)名字空间 如果不加这一句,该程序中的cout和endl都需指明其名字空间的出处,写为:
std::cout<<"hello"<<std::endl;一个程序必须要有主函数main,并且需要有返回值,一般用return 0
(1)从键盘输入一个值,将其赋给变量
int i; cin>>i;(2)通过键盘对多个变量进行赋值
int a,b,c; cin>>a>>b>>c;注意:cin语句把空格字符和回车换行符作为分隔符
(1)对于大数据的输入输出,scanf和printf语句比输入输出流cin和cout的效率高 (2)在使用scanf和printf语句之前,在头文件必须使用#include< cstdio > (3)scanf语句的一般形式为:scanf(“格式化字符串”,地址表) a.格式化字符串以"%"开始, 后跟一个或几个规定字符, 用来确定内容格式。 b.地址表由地址运算符&和变量名组成
#include <iostream>//头文件 using namespace std;//名字空间 //主函数 int main() { int a,b,c; printf("请输入:\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c); return 0; }注意: 1、c++的标准输入输出库包含在头文件iostream; 2、每行语句以分号结束; 3、main函数返回类型为int;
printf()函数的调用格式为: printf(“格式化字符串”, 参量表); (1)格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化字符, 以"%“开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 (2)参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用”,"分开, 且顺序一一对应, 否则将会出现意想不到的错误。 (3)格式化字符 %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %o 无符号以八进制表示的整数 %g 自动选择合适的表示法
注意: 1.可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。 %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 2*.如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。*
3.对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。
4.另外, 若想在输出值前加一些0, 就应在场宽项前加个0。 例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度 为4位。
5.如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。 例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则 第9个字符以后的内容将被删除。
6.可以在"%"和字母之间加小写字母l, 表示输出的是长型数。 例如: %ld 表示输出long整数 ,%lf 表示输出double浮点数
**7.可以控制输出左对齐或右对齐, 即在"%“和字母之间加入一个”-" 号可说明输出为左对齐, 否则为右对齐。 例如: %-7d 表示输出7位整数左对齐 ,%-10s 表示输出10个字符左对齐
(4)字符作用 \n 换行 \f 清屏并换页 \r 回车 \t Tab符 \xhh 表示一个ASCII码用16进表示, 其中hh是1到2个16进制数
用关键字bool表示,取值范围只包含true和false,它们都是C+ +关键字。
用关键字char表示,因此又称为char型,
用关键字int表示,因此又称为int型
单精度型用关键字float表示,又称float型; 双精度型用关键字double表示,又称double型。 浮点数范围是:单精度型-3.4E383.4E38,但不能超过7位有效数字;双精度型-1.7977E3081.7977E308 ,但不能超过15位有效数字。
用关键字void表示,因此又称为void型。空值型的取值为空。
(1)若参与运算的数据类型不同,则先转换为同一类型,再进行计算; (2)转换时按数据长度增加的方向进行,以保证精度不降低,如int 类型和long类型运算时,先把int转换为long类型,再进行运算。 char(short)——int(long)——float——double (3)赋值运算时,如果两边数据类型不同,则将右边的类型转换为左边的类型 (4)赋值语句中,两边数据类型一定得兼容,否则会报错。
(类型名)变量 (类型名)(表达式)
float m=34.56; int i=(int) m; float m=34.56; int i=int (m);字符是以ASCⅡ码存储的,可以把一个字符数据赋给整型变量,也可把整型数据赋给字符变量,还可对字符数据进行算术运算。
#include <iostream>//头文件 using namespace std;//名字空间 //主函数 int main() { int a=90; char b='A'; int c=b;//把字符数据赋给整型变量 char d=a;//把整型数据赋给字符变量 cout<<c<<endl; cout<<d<<endl; return 0; }标识符主要由数字、字母、下画线组成,且首位必为字母或下画线,同时标识符不能是关键字
[<存储类>]<类型名><变量名>[=<初值表达式>] <存储类>有四种,它们分别是auto、register、static、extern <类型名>为已存在的一种数据类型名称,如char,short,int,long,float,double等基本数据类型名,或者用户定义的数据类型名。 <变量名>是用户定义的一个标识符,用来表示一个变量,该变量可以通过后面的可选项赋予一个值,称为给变量赋初值,也叫做对变量进行初始化。
用关键字auto声明的局部变量称为自动变量。auto为变量声明时的默认存储类别,即在变量定义时,如果不显式标明存储类别,则系统自动按auto变量处理。auto变量所占用存储空间的分配和释放工作将由系统自动完成。
用关键字register声明的局部变量称为寄存器变量。register变量可能以寄存器作为其存储空间。声明寄存器变量时,关键字register的作用只能是建议(而不是强制)系统使用寄存器,原因是寄存器虽然存取速度快,但空间有限,当寄存器不够用时,该变量仍然按自动变量处理。
用关键字static声明的变量称为静态变量。任何静态变量的生存期将延续到整个程序的终止。与全局变量一样,为静态变量分配的存储空间在整个程序运行过程中不再被释放;如果静态变量未被赋初值,系统将自动为其赋初值为0。
用关键字extern声明的变量称为外部变量。变量一旦被声明为外部变量,系统就不必像一般变量那样为其分配内存,因为该变量已在这一局部的外面被定义。外部变量一般用于多个文件组成的程序中,有些变量在多个文件中被声明,但却是指同一变量。标明某一变量为外部变量可以避免为其重复分配内存。
1、使用关键字typedef可以为已有类型名定义一个新类型名。其语法格式为:typedef<已有类型名><新类型名> 2、typedef类型说明并没有真正地定义新的数据类型,它只是相当于给某个已有的数据类型起了一个别名。在规模较大的程序中为了提高代码可读性常采用这种形式
1、<类型名>const<符号常量名>=<初值表达式> 或者 const<类型名><符号常量名>=<初值表达式> 2、# define命令是一条预处理命令,也可以用它来定义符号常量。其命令格式为:#define<符号常量名><字符序列>
double const PI = 3.14159; const double PI=3.14159; #define PI 3.14