




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++语言程序设计第十一组C++语言程序设计第二章基本数据类型与表达式C++语言程序设计1目录C++语言程序设计2“C++的词法记号和标识符基本数据类型变量和常量运算符和表达式C语言的输入输出C++的输入输出基本知识等于号和双等于号sizeof运算符输出的格式控制使用string类型处理字符串编程技能磁盘文件是什么刨根问底C++语言程序设计3基本知识a2.1C++的词法记号和标识符
字符集英文字母:A~Z,a~z数字字符:0~9特殊字符:+-*/%^=<>!#&|_~ \‘“;.,()[] {}空格C++语言程序设计42.1C++的词法记号和标识符
关键字是C++预先定义好的标识符,在程序中具有特殊作用。C++关键字:C++语言程序设计5auto bool break case catch charclass const const_cast continue default deletedo double dynamic_cast else enum explicitexport extern false float for friendgoto if inline int long mutablenamespace new operator private protected publicregister reinterpret_cast return short signed sizeofstatic static_cast struct switch template thisthrow true try typedef typeid typenameunion unsigned using virtual void volatilewhile2.1C++的词法记号和标识符
标识符是程序员声明的单词,它命名程序正文中的一些实体,如函数名、变量名、类名、对象名等。C++标识符的构成规则不能是C++的关键字;第一个字符必须是大写、小写字母或下划线;不包含空格和“+、-、;”等特殊字符;为方便输入,长度一般不超过31个字符声明标识符时,做到“见名识意”,可以提高程序的可读性C++语言程序设计6例如:合法的标识符:apple、_Student、_123、no1、max_num不合法的标识符:51job、maxnum、-abc注意:C++的标识符是大小写敏感的,例:myName≠myNAME2.1C++的词法记号和标识符
分隔符不表示实际的操作,仅用于构造程序C++分隔符:(){} , : ;例如:“;”用来作为一句完整语句的结束C++语言程序设计72.1C++的词法记号和标识符
空白是指制表符、空格、空行,用于分隔单词在C++语句中经常出现空白,通常都忽略不计在C++程序中适当使用空白,可以提高程序的可读性C++语言程序设计82.2基本数据类型
数据类型数据根据其本身的特点进行分类,从而形成不同的数据类型不同类型的数据有不同的表示和处理方法C++的数据类型决定了:数据表示形式数据的存储空间对数据可以进行哪些运算以及及运算规则C++语言程序设计92.2基本数据类型
C++的数据类型基本数据类型自定义数据类型C++的基本数据类型,可用来表示整数、实数、单个字符以及逻辑值根据数据特点,指定数据类型整数:数值的取值范围、是否需要存放负数实数:数值的取值范围、有效数字位数C++语言程序设计102.2基本数据类型
实数:单精度浮点型:float双精度浮点型:double扩展精度浮点型:longdouble单个字符字符型:char逻辑值逻辑型:boolC++语言程序设计112.2基本数据类型
C++语言程序设计12类
型长度(字节)取值范围说
明char/signedchar1−128~127有符号字符unsignedchar10~255无符号字符shortint/short2−32
768~32
767短整型unsignedshortint20~65
535无符号短整型int/signedint4−231~231−1整型unsignedint40~232−1无符号整型long/longint4−231~231−1长整型unsignedlong40~232−1无符号长整型float4−3.4×1038~3.4×1038浮点型double8−1.7×10308~1.7×10308双精度型longdouble8−1.7×10308~1.7×10308长双精度型数据类型决定了存放数据的内存空间的大小(字节数)内存空间大小用字节(Byte)数表示1Byte=8bit特定类型的数据所占字节数还和所使用的计算机系统以及编译器有关不同类型的数据所能表示的数据取值范围不同不同类型的数据采用不同的存储格式有符号整型:补码浮点数型:IEEE754标准字符型:ASCII码2.2基本数据类型
C++语言程序设计13数据是程序处理的对象程序在运行中通过变量和常量来操作数据变量:在整个程序运行期间,其存储的值可以改变的量常量:程序运行期间,其值不可以改变的量符号常量:用符号表示的常量常数(字面常量):是指程序中直接写出的数据2.3变量和常量
C++语言程序设计14变量在整个程序运行期间,其存储的值可以改变的量实质:内存中的一个地址空间,对该地址空间中的数据可以进行存储、读取定义变量的语法格式
数据类型变量名1,变量名2,……变量名n;2.3变量和常量
C++语言程序设计15例如:定义各种类型的变量int num;floatf;charch;shorts;doublearea,length; 2.2基本数据类型
定义变量的实质例如:intnum;用于为变量分配内存空间根据数据类型int,从地址0xXXXXXXXX开始,为变量num分配4个字节单元变量num的取值范围为−231~231−1编程时,可以直接使用变量名num对存储在该内存空间的数据,也就是变量值进行存取C++语言程序设计16关于变量的几点说明在C++程序中使用变量,必须“先定义或声明,后使用”,而且只能定义一次定义变量的位置,C++中没有要求,放在第一次使用该变量之前的任何位置均可以定义变量时,需要指明该变量的数据类型和名称数据类型:决定变量的存储方式和可以进行的操作变量名:用来区分不同的变量,使用它可直接存取变量的值变量名是标识符,要遵循标识符定义的规则2.3变量和常量
C++语言程序设计17变量的赋值使用赋值运算符“=”可以将一个值赋给变量例如:
unsignedshortintage; age=18;变量的初始化定义变量时,给它指定一个初始值例如:
unsignedshortintage=18;或者unsignedshortintage(18); charch1=‘a’,ch2=‘b’;或者charch1(‘a’),ch2(‘b’);2.3变量和常量
C++语言程序设计18提示:变量可以被多次赋值变量初始化只能做一次例:赋值运算符的使用2.3变量和常量
C++语言程序设计19运行结果:myAge=18myAge=20//变量的赋值#include<iostream>usingnamespacestd;intmain(){
intmyAge=18;
//变量的初始化 cout<<"myAge="<<endl;
myAge=20;
//变量的赋值 cout<<"myAge="<<endl; return0;}typedef关键字用来定义类型的别名语法形式:typedef原类型名
新类型名;例如:typedefunsignedshortintUINT16;
UINT16i;注意:typedef语句并没有定义一个新的数据类型,只是声明了原有数据类型的一个别名用途:简化复杂的类型定义,便于理解、使用允许一种类型用于多个目的2.3变量和常量
C++语言程序设计20符号常量定义格式const数据类型常量名=初始值;例如:
constdoublePI=3.14159;关于常量的几点说明
常量在程序运行过程中不能够被改变常量在定义的时候必须进行初始化
不能对常量进行赋值操作例如:constdoublePI;PI=3.14159;2.3变量和常量
C++语言程序设计21错误!C语言中定义符号常量使用预处理指令#define指令形式:#define符号常量名数据值例如:#definePI3.14159注意:因为不是C++语句,所以行末没有“;”
2.3变量和常量
C++语言程序设计22提示:程序中尽可能使用符号常量,尽量避免直接使用有特殊意义的常数,以提高程序的可读性和可维护性整型常数十进制:直接写出的整数,例如:231、-4569、0八进制:以数字0开头的整数,例如:0123八进制数的有效数字为:0~7无正负号十六进制:以0x或0X开头的整数,例如:0x123十六进制数的有效数字为:0~9、A~F(a~f)无正负号整型常数默认是int类型可以用后缀字母U或u表示无符号型:例如:65536U可以用后缀字母L或l表示长整型:123L2.3变量和常量
C++语言程序设计23浮点型常数小数形式:由数字和小数点组成,例如:0.123、234.0、12.56指数形式:表示为:aEb(aeb)
,代表数值:a
×
10b例如:1.23E-1、234e1、0.1256E2a、b都不可以省略b必须是整数浮点型常数默认是double类型可以用后缀字母F或f表示float类型,例如:12.56f可以用后缀字母L或l表示longdouble,例如:0.1256E2L2.3变量和常量
C++语言程序设计24字符常数字符型数据占用一个字节,采用ASCII编码字符常数采用单引号作为界定符字符常数包括:可显示字符,可直接表示,例如:’A’、’?’、’0’等不可显示的控制字符,采用转义字符序列表示,例如:’\n’、’\t’、’\a’等有特殊用途的字符,采用转义字符序列表示,
例如:’\\’、’\’’、’\”’2.3变量和常量
C++语言程序设计25转义字符以\开头的字符序列,用来表示一个特定字符C++中的转义字符2.3变量和常量
C++语言程序设计26字符形式ASCII码含
义\a0x07响铃\n0x0A换行\t0x09制表符(横向跳格)\v0x0B竖向跳格\b0x08退格\r0x0D回车\\0x5C反斜线\\"0x22双引号\'0x27单引号\oooo是八进制数任意ASCII字符\xhhh是十六进制数任意ASCII字符例:打印特殊字符2.3变量和常量
C++语言程序设计27//打印特殊字符#include<iostream>usingnamespacestd;intmain(){ cout<<"输出字母:"<<'a'<<'\a'<<endl; cout<<"输出字母:"<<'n'<<'\n'; return0;}运行结果:输出字母:a(蜂鸣器响一声)
输出字母:n(换行)任何ASCII字符的统一表示使用转义字符‘\ooo’,其中o表示1~3位八进制数使用转义字符’\xhh’,其中h表示1~2位十六进制数ASCII码表例如:实现前例的输出还可以写为cout<<"输出字母:"<<'\x61'<<'\x7'<<endl;cout<<"输出字母:"<<'\x6E'<<'\xA';2.3变量和常量
C++语言程序设计28字符数据的存储在内存中,字符数据以ASCII码存储ASCII码值可看成是单字节整数C++中字符数据和整数可以相互赋值例:字符数据和整型数据的转换注意:变量的数据类型决定如何解读内存中的数据2.3变量和常量
C++语言程序设计29//字符数据和整型数据的转换#include<iostream>usingnamespacestd;intmain(){ intn='a'; charch=97; cout<<"按整数输出内容:"<<n<<endl; cout<<"按字符输出内容:"<<ch<<endl; return0;}运行结果:按整数输出内容:97按字符输出内容:a字符串常量由一对双引号括起来的字符序列例如:“Helloworld!““C++程序设计”字符串常量的存储除了存储所包含的字符外,还存储一个结束标志’\0’‘\0’:ASCII码值为0的字符——结束符例如:“WORLD!”2.3变量和常量
C++语言程序设计30WORLD!\0注意:字符串常量和字符型数据存储的区别“A”:‘A’:A\0A请思考:字符串常量“\x07Operating\tsystem”
中有几个字符?显示结果?逻辑常数逻辑常数只有两个false:表示“假”true:表示“真”逻辑型数据的存储占用一个字节单元false:存放为0true:存放为1逻辑常数的显示false:显示为0true:显示为12.3变量和常量
C++语言程序设计31例如:
boolexchanged=false; exchanged=true;表达式操作数与运算符(操作符)序列表达式的值:运算结果例如:3.2 //简单表达式,值为3.22+3 //常量表达式,值为5a //简单表达式,值为变量a的值x=(a+b)*c //较为复杂的表达式y=x=a+b //表达式是可以嵌套的2.4运算符和表达式
C++语言程序设计32语句由表达式和结尾的“;”组成一个C++语句例如:x=(a+b)*c; y=x=a+b;空语句单独出现的分号可用于满足程序特定语法规则的要求2.4运算符和表达式
C++语言程序设计33语句块(复合语句)
由{}括起来的语句序列属于同一个逻辑关系的多条语句组成语句块,以满足程序特定语法规则的要求
例如:实现将变量x和y交换的语句块{ inttemp=x; x=y; y=temp;}2.4运算符和表达式
C++语言程序设计34运算符
C++提供了丰富的运算符运算符的含义:取决于操作数的类型当操作数为基本数据类型时,C++定义了操作符的运算规则C++支持运算符重载
运算符的优先级和结合性优先级:决定了运算顺序,例如:1+2*3结合性:优先级相同的运算按照结合性来确定运算顺序,例如:1+2+3使用圆括号可以改变运算顺序,例如:(1+2)*32.4运算符和表达式
C++语言程序设计352.4运算符和表达式
C++语言程序设计36运算符分类——根据操作数个数一元操作符:仅需要一个操作数的运算符,例如:+二元操作符:需要两个操作数的运算符,例如:+三元操作符:需要三个操作数的运算符,只有条件运算符:?:运算符分类——根据运算性质赋值运算符、算术运算符、复合赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符、逗号运算符……2.4运算符和表达式
C++语言程序设计37赋值运算符“=”是赋值运算符例如:f=3.15、x=y表达式的值:左边操作数的值左值和右值左值:可以出现在“=”左边或右边右值:只能出现在“=”的右边变量——左值常量——右值带有运算符的表达式——一般只能是右值2.4运算符和表达式
C++语言程序设计38注意:赋值运算符“=”不等同于数学意义上的等于号“=”赋值运算符优先级“=”具有较低级别的优先级“=”的结合性为:右结合2.4运算符和表达式
C++语言程序设计39例如:floatx,y;inta,b;constfloatPI=3.14;x=3.5; //正确y=x; //正确a=b=100; //正确PI=x; //错误3.5=x; //错误y+2=x-10; //错误算术运算符一元:+(正号)、-(负号)、++(自增)、--(自减)二元:+(加)、-(减)、*(乘)、/(除)%(取余)“/”除法运算符根据操作数的类型,决定运算规则例如:5/2,表达式的值为:25.0/2.0,表达式的值为:2.5“%”取余运算符只能对整数类型进行操作余数的符号由被除数决定2.4运算符和表达式
C++语言程序设计40例:“/”和“%”运算符的使用2.4运算符和表达式
C++语言程序设计41运行结果:a=-4b=3a/b=-1(float)a/b=-1.33333a%b=-1b%a=0//“/”和“%”运算符的使用#include<iostream>usingnamespacestd;intmain(){inta=-4,b=3;cout<<"a="<<a<<"b="<<b<<endl;cout<<"a/b="<<a/b<<endl;cout<<"(float)a/b="<<(float)a/b<<endl;cout<<"a%b="<<a%b<<endl;cout<<"b%a="<<b%a<<endl;return0;}
++(自增)--(自减)运算符操作数加1(减1)的简短实现方式,例如:i=i+1(i=i-1)分为:前置自增(自减),例如:++i(--i)后置自增(自减),例如:i++(i--)前置自增(自减)操作数加1(减1),表达式的值为操作数修改后的值后置自增(自减)操作数加1(减1),表达式的值为操作数修改前的值2.4运算符和表达式
C++语言程序设计42例:“++”前、后置自增运算符对比2.4运算符和表达式
C++语言程序设计43运行结果:i=1,j=1i=2,j=2a=2,b=1//“++”前、后置自增运算符对比#include<iostream>usingnamespacestd;intmain(){ inti=0,j=0,a,b;
++i; j++; cout<<"i="<<i<<",j="<<j<<endl;
a=++i; b=j++; cout<<"i="<<i<<",j="<<j<<endl; cout<<"a="<<a<<",b="<<b<<endl; return0;}复合赋值运算符将算术运算符和赋值运算符结合包括:+=、-=、*=、/=、%=语法格式:aopb,相当于:a=aopbop: +,-,*,/、%算术运算优先级2.4运算符和表达式
C++语言程序设计44+(正号)、-(负号)、++、--*、/、%+(加)、-(减)+=、-=、*=、/=、%=高低例如:x*=y+8相当于:x=(x*(y+8))算术运算的溢出问题算术运算时,如果运算结果超出了其类型能够表示的的数值范围,就会产生溢出溢出时,运算结果是错误的,但编译器不会发现溢出错误溢出的解决:选择表示数值范围更大的数据类型2.4运算符和表达式
C++语言程序设计45例如:shortinti=20000,j=30000,k;cout<<(k=i+j)<<endl; 运行结果:
-15536溢出了!例如:inti=20000,j=30000,k;cout<<(k=i+j)<<endl; 运行结果:50000修改为关系运算符包括:>(大于)、>=(大于等于)、<(小于)、<=(小于等于)==(等于)、!=(不等于)关系表达式的值:bool值true:运算符指定的关系成立false:运算符指定的关系不成立2.4运算符和表达式
C++语言程序设计46例如:inta=1,b=2,c=3; cout<<(a==b)<<endl;//false,显示为:0cout<<(a!=b)<<endl;//true,显示为:1cout<<(a>=b)<<endl;//false,显示为:0cout<<(a<b)<<endl; //true,显示为:1boold;d=(a>b)==(c>a+5);//d的值为:truecout<<d<<endl; //显示为:1逻辑运算符包括:!(逻辑非)、&&(逻辑与)、||(逻辑或)操作数:bool型表达式的值:bool值!:操作数的值为true,则为:false;操作数的值为false,则为:true&&:两个操作数的值都为true,则为:true;否则为:false||:两个操作数的值都为false,则为:false;否则为:true2.4运算符和表达式
C++语言程序设计47逻辑表达式求值策略当左操作数可以决定逻辑表达式的值时,则不会再去计算右操作数应用:将简单的关系表达式连接起来,构成的逻辑表达式可以表达更复杂的条件2.4运算符和表达式
C++语言程序设计48例如要表示条件:a>b>c逻辑表达式为:(a>b)&&(b>c)关系、逻辑运算的优先级2.4运算符和表达式
C++语言程序设计49!<、<=、>、>===、!=&&||高低例如:
inta=1,b=2,x=3,y=4;boold;d=a<b&&x>y; //计算过程cout<<d<<endl;//显示为:0位运算符对整型数按二进制位进行位操作包括:~(位求反)、&(位与)、|(为或)、^(位异或)、
<<(左移)、>>(右移)操作数:整数
按位求反运算“~”将操作数的每一个二进制位按位取反2.4运算符和表达式
C++语言程序设计50例如:
unsignedchara=0x97;a=~a;1001011101101000按位与运算“&”两个操作数对应的位进行与运算:如果对应的位都为1,则该位
操作结果为:1,否则为:02.4运算符和表达式
C++语言程序设计51例如:
unsignedchara=0x97;unsignedcharb=0x78;unsignedcharr=a&b;100101110111100001010000按位或运算“|”两个操作数对应的位进行或运算:如果对应的位都为0,则该位
操作结果为:0,否则为:12.4运算符和表达式
C++语言程序设计52例如:
unsignedchara=0x97;unsignedcharb=0x70;unsignedcharr=a&b;100101110111000011110111按位异或运算“^”两个操作数对应的位进行异或运算:如果对应的位只有一个为1,则操作结果为:1,否则为:02.4运算符和表达式
C++语言程序设计53例如:
unsignedchara=0x97;unsignedcharb=0x70;unsignedcharr=a&b;100101110111000011000111左移运算“<<”将左操作数向左移动若干位(由右操作数指定),
最低位移入:0,移出的最高位丢弃2.4运算符和表达式
C++语言程序设计54例如:
unsignedchara=7;a<<1;a<<2;000001110000111000011100右移运算“>>”将左操作数向右移动若干位(由右操作数指定),左操作数为无符号数:最高位移入“0”,移出的最低位丢弃左操作数为有符号数:最高位移入“符号位”,移出的位丢弃2.4运算符和表达式
C++语言程序设计55例如:
unsignedchara=8;a<<1;a<<2;000010000000010000000010例如:
chara=-8;a<<1;a<<2;111110001111110011111110复合赋值运算符将位运算符和赋值运算符结合包括:&=、|=、^=、<<=、>>=语法格式:aopb,
相当于:a=aopbop: &,|,^,<<、>>2.4运算符和表达式
C++语言程序设计56~<<、>>&^|&=、^=、|=、<<=、>>=高低位运算优先级位运算应用举例位运算:提供了对整数每一个二进制位的设置和检验功能实现掩码运算掩码:是一个位模式,它表示从一个整数的二进制位集合中
选出一组位
例如:掩码0xff,它表示从一个整数中选取
它的最低8位二进制位采用位与运算实现比较两个整数是否相等采用位异或运算运算结果为0,则相等,否则不相等
2.4运算符和表达式
C++语言程序设计57例如:unsignedinta=0x1234;cout<<hex<<(a&0xff)<<endl;运行结果:34(十六进制)例如:unsignedchara,b;a=b=0x56;cout<<(a^b)<<endl;运行结果:0条件运算符“?:”C++中唯一的三元操作符语法格式:表达式1?表达式2:表达式3计算表达式1的值,如果结果为true,则计算并返回表达式2的值,
否则,计算并返回表达式2的值2.4运算符和表达式
C++语言程序设计58例如:intx=0,y=1;cout<<(x>y?x:y)<<endl;运行结果:1逗号运算符“,”语法格式:表达式1,表达式2,……表达式n顺序计算表达式1,表达式2,……,表达式n的值,并将
表达式n的值作为逗号表达式的值2.4运算符和表达式
C++语言程序设计59例如:inta,b,c,d; d=(a=1,b=2,c=a+b,a+b+c);cout<<d<<endl;运行结果:6运算符优先级总结每一类型运算符优先级不同类型运算符优先级使用圆括号“()”可以打破
优先级的限制2.4运算符和表达式
C++语言程序设计60一元算术运算符、逻辑非二元算术运算符位移位运算符关系运算符位运算符逻辑运算符条件操作符赋值、复合赋值运算符逗号运算符高低数据类型转换当表达式中出现多种数据类型的混合运算时,往往需要进行类型转换表达式中的类型转换分为:隐式类型转换强制类型转换隐式类型转换当表达式中需要进行数据类型转换时,编译器按照相关转换规则自动执行的类型转换强制类型转换在表达式中使用强制类型转换操作符实现的类型转换2.4运算符和表达式
C++语言程序设计61隐式类型转换算术运算的转换基本原则将精度较低、范围较小的类型转换成精度较高、范围较大的类型同一种精度的无符号数和有符号数,有符号数转换成无符号数例如:5.0/2赋值运算的转换基本原则如果两个操作数的类型不一致,则将右操作数
的类型转换成左操作数的类型2.4运算符和表达式
C++语言程序设计62例如:inti;i=3.15;cout<<i<<endl; //运行结果:3隐式类型转换逻辑运算的转换基本原则逻辑运算符要求操作数为bool类型,如果操作数为其他类型,则转换成bool类型
0转换成false,非0转换成true例如:3&&0bool类型转换为整数的基本原则
true转换成1,将false转换成02.4运算符和表达式
C++语言程序设计63C语言的强制类型转换运算符“()”语法格式:类型名(表达式)或者(类型名)表达式2.4运算符和表达式
C++语言程序设计64例如:inti=97;doublef=3.15;cout<<char(i)<<““<<(int)f<<endl;运行结果:a3C++的强制类型转换运算符static_cast<类型名>语法格式:static_cast<类型名>
(表达式)2.4运算符和表达式
C++语言程序设计65例如:inti=97;doublef=3.15;cout<<static_cast<char>(i)<<““<<static_cast<int>(f)<<endl;运行结果:a3关于强制类型转换说明
如果强制由高精度的数据类型转换至低精度的数据类型,数据精度将受到损失,从这个意义上说,强制类型转换是一种不安全的类型转换在C++编程时建议使用static_cast运算符进行强制类型转换基本数据类型之间的强制转换都是允许的对于不允许进行的类型转换,
当使用static_cast运算符时,编译时会报错
当使用C语言的强制类型转换运算符时,编译不会报错,但运行时会出错2.4运算符和表达式
C++语言程序设计66关于输入输出
标准输入设备:一般指键盘用于向程序输入数据标准输出设备一般指显示器用于显示程序的执行结果C语言没有输入输出语句,而是使用库函数实现输入输出基本输出库函数:putchar、printf基本输入库函数:getchar、scanf2.5C语言的输入输出
C++语言程序设计67putchar函数功能:向显示器输出一个字符例:字符输出待输出的字符写在小括号里小括号里的内容是参数列表
2.5C语言的输入输出
C++语言程序设计68//字符输出#include<stdio.h>intmain(){charc='A';
putchar(c);
putchar('\n'); putchar('A');putchar(65);return0;}运行结果:AAAprintf函数功能:将数据按照一定的格式输出到
显示器例:字符串输出小括号里的内容为参数列表双引号里的内容照原样输出2.5C语言的输入输出
C++语言程序设计69//输出字符串#include<stdio.h>intmain(){printf(“helloworld!\n”);return0;}运行结果:helloworld!例:输出整数和小数小括号里的内容格式控制串和参数列表,多个参数用逗号分隔%d表示输出整数,用变量age的值替换,显示到屏幕%f表示显示小数,用常数3.14159替换,显示到屏幕双引号里的其他内容照原样输出2.5C语言的输入输出
C++语言程序设计70//输出整数和小数#include<stdio.h>intmain(){intage=19;printf("Iam%d.\n",age);printf("PI=%f,Iam%d.\n",3.14159,age);return0;}运行结果:Iam19.PI=3.141590,Iam19.getchar函数功能:返回从键盘读取的一个字符例:字符输入
2.5C语言的输入输出
C++语言程序设计71//字符输入#include<stdio.h>intmain(){charc;printf("请输入一个字符:
");c=getchar();printf("输入字符为:%c\n",c);return0;}运行结果:请输入一个字符:A输入字符为:Ascanf函数功能:进行格式化输入例:输入整数和小数&是取地址运算符scanf的格式控制串里不要加多余的空格或’\n’scanf的格式控制串里也可以写成“%d,%f”,则输入数据时,也需用逗号分隔2.5C语言的输入输出
C++语言程序设计72//输入整数和小数#include<stdio.h>intmain(){intage;floatweight;printf("inputageandweight:");scanf("%d%f",&age,&weight);printf("age=%d,weight=%f.\n",age,weight);return0;}运行结果:inputageandweight:1955age=19,weight=55.000000.格式转换说明符在printf和scanf的格式控制串中,用来指明了输入输出数据的类型信息常用的转换说明符2.5C语言的输入输出
C++语言程序设计73类型字符含
义d十进制数o八进制数x十六进制数u无符号十进制数i整型f实型的小数形式e实型的指数形式gf和e的较短形式c字符s字符串l或h放在任何整数转换说明符之前,用于输入输出short或long类型数据l或L放在任何浮点转换说明符之前,用于输入输出double或longdouble类型数据C++的输入输出
C++没有输入输出语句,而是使用iostream类库实现输入输出使用iostream库中标准输入流对象cin,实现从键盘读取数据使用iostream库中标准输出流对象cout,将数据输出到屏幕上2.6C++的输入输出
C++语言程序设计74标准输入流标准输入流对象cin:负责从键盘读取数据提取操作符“>>”:从cin提取数据存入到变量中语法格式:cin>>变量1>>变量2……>>变量n;“>>”可以连续使用变量的数据类型不必一致,“>>”可以识别变量的类型2.6C++的输入输出
C++语言程序设计75例:计算从键盘输入的两个整数的和要求实际键入的数据和变量的类型一致注意:如果数据类型不匹配,提取操作会终止如果从键盘输入一个字符给整型变量,则提取操作终止2.6C++的输入输出
C++语言程序设计76//计算从键盘输入的两个整数的和#include<iostream>usingnamespacestd;intmain(){intsum=0,value1,value2;cout<<"请输入两个整数:";cin>>value1>>value2;sum=value1+value2;cout<<"sumis:"<<sum<<endl;return0;}运行结果:请输入两个整数:12sumis:3标准输出流标准输出流对象cout:负责将程序中的数据显示到屏幕上插入操作符“<<”:将程序中的数据写入cout语法格式:cout<<表达式1<<表达式2……<<表达式n;“<<”可以连续使用“<<”可以识别数据的类型,并显示出来例如:cout<<“Helloworld!\n”; //在屏幕上显示字符串常量2.6C++的输入输出
C++语言程序设计77例:cout的使用2.6C++的输入输出
C++语言程序设计78//cout的使用#include<iostream>usingnamespacestd;intmain(){inta,b;charch;
cout<<“请按顺序输入两个整数和一个字符:\n";cin>>a>>b>>ch;
cout<<"a="<<a<<"b="<<b
<<"ch="<<ch<<endl;
return0;}运行结果:请按顺序输入两个整数和一个字符:12aa=1b=2ch=aC++语言程序设计79编程技能aC++中,等于号“=”用于赋值运算例如:inta=5; //变量的定义及初始化a=a+3; //表示读取变量a的当前值,加上3,然后再赋值给变量aC++中,双等于号“==”用于判断两个数是否相等如果相等,则计算结果为true,显示为1如果不相等,则计算结果为false,显示为0注意:不能用双等于号判断两个浮点数是否相等原因:浮点数在计算机中存储时不是精确存储(一)
等于号和双等于号C++语言程序设计80sizeof运算符用来确定
数据类型或数据的长度语法形式:
sizeof(数据类型名)
sizeof(表达式)(二)sizeof运算符
C++语言程序设计81//输出数据类型、数据的长度#include<iostream>usingnamespacestd;intmain(){cout<<"char:"<<sizeof(char)<<"字节\n";cout<<"int:"<<sizeof(int)<<"字节\n";cout<<"float:"<<sizeof(float)<<"字节\n";cout<<"double:"<<sizeof(double)<<“字节\n";cout<<"bool:"<<sizeof(bool)<<"字节\n";inta=5;cout<<"变量a:"<<sizeof(a)<<"字节\n";return0;}使用printf输出时,可以指定显示宽度(三)
输出的格式控制C++语言程序设计82//指定显示宽度#include<stdio.h>intmain(){printf("number:%4d,OK\n",3);printf("number:%4d,OK\n",33);printf("number:%4d,OK\n",333);return0;}使用printf输出时,可以指定显示宽度(三)
输出的格式控制C++语言程序设计83//指定显示宽度#include<stdio.h>intmain(){printf("number:%04d,OK\n",3);printf("number:%04d,OK\n",33);printf("number:%04d,OK\n",333);return0;}使用printf输出时,可以指定小数点后的位数例如:printf(“x=%.2f\n”,3.14159);
//显示为:x=3.14C++使用操控符控制输入输出的格式操控符的说明包含在头文件iomanip中操控符可以直接嵌入在输入输出语句中实现格式控制使用setw(intn)操纵符设置域宽setw(0)按数据实际宽度输出如果所设置域宽小于数据宽度,则按数据实际宽度输出setiosflags(ios::left)、setiosflags(ios::right):设置数据对齐方式默认:右对齐setfill(charc):设置填充字符默认:空格(三)
输出的格式控制C++语言程序设计84(三)
输出的格式控制C++语言程序设计85例如:cout<<setw(8)<<‘a’<<setw(8)<<‘b’<<endl;显示为:ab例如:cout<<setfill(‘*’)<<setw(8)<<‘a’<<setw(8)<<‘b’<<endl;显示为:*******a*******b例如:cout<<setiosflags(ios::left)<<setfill(‘*’)<<setw(8)<<‘a’<<setw(8)<<‘b’<<endl;显示为:a*******b*******使用setprecision(intn)可以控制显示浮点数的数字个数C++默认输出浮点数的有效位为6位setprecision(0)按默认输出使用setiosflags(ios::fixed)设置用定点方式表示浮点数默认设置为显示6位有效小数使用setprecision(intn)可以设置小数的数字个数使用setiosflags(ios::scientific)设置用指数方式表示浮点数默认设置为显示6位有效小数使用setprecision(intn)可以设置小数的数字个数使用操纵符将小数截短显示时,将进行四舍五入处理(三)
输出的格式控制C++语言程序设计86(三)
输出的格式控制C++语言程序设计87例如:doublef=17/7.0;cout<<f<<endl;cout<<setprecision(3)<<f<<endl;显示为:2.425872.43例如:doublef=17/7.0;cout<<f<<endl;cout<<setiosflags(ios::fixed)<<setprecision(3)<<f<<endl;显示为:2.425872.429例如:doublef=170/7.0;cout<<f<<endl;cout<<setiosflags(ios::scientific)<<setprecision(3)<<f<<endl;显示为:24.25872.429e+001C++字符串存储和处理C++基本数据类型中没有字符串类型C语言:字符数组、字符指针使用C++标准模板库(STL)中的string类型string类型的说明包含在头文件string中string类型支持长度可变的字符串,处理字符串更方便、安全(四)使用string类型处理字符串C++语言程序设计88string对象的定义和初始化使用string类型,要包含头文件string#include<string>使用举例: stringstr1; //定义string对象str1 stringstr2(“Hello”); //定义string对象str2,并初始化
stringstr3=str2; //定义string对象str3,并初始化string对象的初始化还有其他方法(四)使用string类型处理字符串C++语言程序设计89string对象的输入输出屏幕显示:
使用cout和“<<”键盘输入:
使用cin和“>>”例:string
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/TS 23541-2:2025 EN Health informatics - Categorial structure for representation of 3D human body position system - Part 2: Body movement
- 石砌体台阶施工方案
- 管涵桥施工方案
- 2025年度智能家居产品佣金支付及智能家居服务合同
- 二零二五年度事业单位聘用合同:事业单位物业管理人员岗位服务合同
- 二零二五年度文化旅游产业合作终止合同
- 二零二五年度公司股东内部关于战略合作的框架协议
- 2025年度服装厂员工保密与竞业禁止合同
- 2025年度洗浴场所员工激励机制与雇佣协议
- 二零二五年度物联网设备技术顾问服务协议
- GB/T 2572-2005纤维增强塑料平均线膨胀系数试验方法
- 2023年江苏省中学生生物奥林匹克竞赛试题及答案
- 领导干部应对新媒体时代
- 维修质量检验制度
- 食管支架植入术后护理课件
- 品质控制计划(QC工程图)
- 海外派遣人员管理办法
- 混凝土灌注桩质量平行检查记录(钢筋笼)
- 汽车营销学(全套课件)
- 现浇墩台身轴线偏位、全高竖直度检测记录表
- 激光共聚焦显微镜校准规范编制说明
评论
0/150
提交评论