C++简明教程第一章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

最基础的两个C++对象printf,scanf%d,%f,%s,%c,%p…C++中输入、输出由标准库iostream库提供的。iostream库的基础是两个命名为istream和ostream的类型,分别表示输入流和输出流。cin是istream类型的对象,cout是ostream类型的对象。输入、输出的都是变量(int,char…)2最基础的两个C++对象输入、输出流、变量、符号(和)的关系运算符(“送出”)将它的第二个参数写到第一个参数里31.3cout对象cout对象被称为标准输出对象.用于显示信息到屏幕.例:coutProgrammingisgreatfun!;:流插入操作符.41.3cout对象(续)endl和‘\n’.例:coutProgrammingisgreatfun!endl;等价于:coutProgramming;coutisgreat;coutfun!\n;endl=‘\n’+flush(回车+刷新缓冲区)•鼓励使用endl5布尔类型布尔型变量用于表示“真”或“假”.例:#includeiostream.husingnamespacestd;voidmain(void){boolboolValue;boolValue=true;coutboolValueendl;boolValue=false;coutboolValueendl;}6最基础的两个C++对象•标准库iostream为每种内部类型(如int,float,char,double,string)定义了相应的输出方式•用户定义类型需要程序员自己实现如structCircle{};7•使用cout输出、cin输入,添加如下两行在头部:#includeiostreamusingnamespacestd;81.4标识符尽量选择有含义的英文单词.例:intx;intitemsOrdered;intitems_ordered;关键字.表1-1.(P7)91.6注释良好的注释习惯是一个优秀程序员所必备的素质.C语言的注释方式:/**/C++的注释方式://例如一个好的注释风格:101.6注释(续)注释主要用于提示或备忘,不需长篇累牍,应简明扼要.反例:#includeiostream.h//Needtheiostream.hfile//becausetheprogramusescout.voidmain(void)//Thisisthestartoffunctionmain.{floatpayRate;//payRateisafloatvariable.//Itholdsthehourlypayrate.……}111.7编程风格编程风格指的是程序员使用标识符、空格、TAB键、空行、标点、缩进、注释等的方式,是体现一个程序员水平的重要方面.一组经过良好选择和良好书写的注释是好程序中最具本质性的一个组成部分。写出好注释可能就像写出好程序一样困难,但这是一种值得去好好休养的艺术。(P124)------BjarneStroustrup12每个源文件写一个注释,陈述其作用一个函数写一个注释,陈述其用途,所用的算法(除非算法非常明显)每个全局变量写个注释保持一致的缩进编排风格避免过于复杂的表达式如果对运算符的优先级有疑问,加括号131.8cin对象cin对象从键盘获取信息.cin:标准输入对象注:需包含iostream.h14#includeiostreamvoidmain(void){intlength,width,area;coutWhatisthelengthoftherectangle?;cinlength;coutWhatisthewidthoftherectangle?;cinwidth;area=length*width;coutTheareaisarea.\n;}151.8cin对象(续)cin可以读取不同类型的多个变量.例:intwhole;floatfractional;charletter;cinwholefractionalletter;注意:容易出错•输入变量时,用空格隔开161.8cin对象(续)读取字符串:charname[21];cinname;警告:数组溢出!!!输入字符串长度有限制171.9格式化输出cout对象提供带格式的数据输出.setw用于指定输出数据项的域宽.函数:setw(intn)使用setw需要包含头文件:iomanip.h18191.9格式化输出intintValue=3928;floatfloatValue=91.5;cout(setw(5)intValue)”endl;cout(setw(8)floatValue)“endl;空格补在前面201.9格式化输出(续)Precision:默认的有效位数是6位.floatx=1.2345f;coutsetprecision(9)xendl;coutsetprecision(3)xendl;coutsetprecision(2)xendl;coutsetprecision(1)xendl;结果:1.23451.231.2121采用函数成员实现格式化输出域宽和精度都可以通过cout的成员函数来修改.例如:floatx=12.345f;cout.width(5);cout.precision(3);coutx;//coutsetw(5)setprecision(3)x;结果:12.3221.10格式化输入cin对象可以用来控制字符或字符串的输入cin遇到空字符时将停止读入.charworld[10];cin.width(10);//最多读取9个字符cinworld;//cinsetw(10)world;231.10格式化输入(续)读取一行:getline#includeiostream.hvoidmain(void){charsentence[81];cout“请输入一个句子:;cin.getline(sentence,81);//getsinCcout“您输入的句子:sentenceendl;}241.10格式化输入(续)读取一个字符:#includeiostream.hvoidmain(void){charch;cout“输入一个字符并回车:;cinch;cout“你输入的是:chendl;}跳过空白字符251.10格式化输入(续)使用cin.get:可以读取包含空字符在内的任意字符.#includeiostream.hvoidmain(void){charch;cout“按回车键继续.;cin.get(ch);cout“谢谢!endl;}261.10格式化输入(续)混合使用cin和cin.get:容易导致难以发现的问题.cout“输入一个数字:;cinnumber;cout“输入一个字符:;cin.get(ch);271.13函数的缺省参数缺省参数:例voidshowArea(intlength=20,intwidth=10);……voidshowArea(intlength,intwidth){coutArea=length*widthendl;}……showArea();//area=?showArea(12);//area=?281.13函数的缺省参数29函数缺省参数的作用一个通用函数所需的参数常比简单情况多一些•voidPrint(intvalue)Print(1);Print(23);输出二进制形式的23,十六进制形式的23•voidPrint(intvalue,intbase=10)Print(23,2);结果:10111(二进制),17(十六进制)抽象和通用的思想30缺省形参值的说明次序缺省形参值必须从右向左顺序声明,并且在缺省形参值的右面不能有非缺省形参值的参数。因为调用时实参取代形参是从左向右的顺序。例:intadd(intx,inty=5,intz=6);//正确intadd(intx=1,inty=5,intz);//错误intadd(intx=1,inty,intz=6);//错误311.13缺省参数(续)如果函数调用时没有给出实参,则缺省的参数值将传给形参.通常缺省的参数值都出现在函数原型中.321.14引用作函数参数引用是另一个变量的别名(例子姓名、学号).使用引用作参数可以使得函数访问、修改该引用对应的变量值.33函数的参数传递——用引用做形参引用(&)是标识符的别名,例如:inti,j;int&ri=i;//建立一个int型的引用ri,并将其//初始化为变量i的一个别名j=10;ri=j;//相当于i=j;与取地址做区分iri34函数的参数传递——用引用做形参声明一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象。35函数的参数传递——用引用做形参不对引用进行第二次修改420420202036例输入两个整数交换后输出#includeiostream.hvoidSwap(int&a,int&b);intmain(){intx(5),y(10);coutx=xy=yendl;Swap(x,y);coutx=xy=yendl;return0;}引用可以作为形voidswap(int&a,int&b){...}37voidSwap(int&a,int&b){intt;t=a;a=b;b=t;}运行结果:x=5y=10x=10y=538输出结果?394484401.14引用作函数参数(续)多个引用作参数:voidadd(int&,int&,int&,int&);voidadd(int&sum,int&n1,int&n2,int&n3){…}警告!不要过多地将引用作函数参数,否则会产生潜在的隐患引用大多数情况下是作为函数参数使用,而非在一个函数中411.15函数重载就是定义多个函数,名字相同,但参数类型或参数个数不全相同.常见的情况是给不同的函数以不同的名字。但是,当某些函数在不同类型的对象上指向概念上相同的工作时,去相同的名字就更方便了421.15函数重载问题:实现加法运算(int,float,double,string)431.15函数重载问题:实现加法运算(int,float,double,string)44重载函数的声明C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。例:形参类型不同intadd(intx,inty);floatadd(floatx,floaty);形参个数不同intadd(intx,inty);intadd(intx,inty,intz);45注意事项–不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。这样不好:intadd(intx,inty);intadd(inta,intb);编译器不以形参名来区分intadd(intx,inty);voidadd(intx,inty);编译器不以返回值来区分intadd(intx,inty){returnx+y;}floatadd(floatx,floaty){returnx-y;}–重载函数的形参必须不同:个数不同或类型不同。–编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。46intsquare(int);//原型floatsquare(float);//原型voidmain(void){inti_a;floatf_b;cini_af_b;coutsquare(i_a)and

1 / 61
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功