对象的使用和输入输出5_第1页
对象的使用和输入输出5_第2页
对象的使用和输入输出5_第3页
对象的使用和输入输出5_第4页
对象的使用和输入输出5_第5页
已阅读5页,还剩30页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、回顾this指针静态成员const对象const成员函数1目标C+ 输入输出的基本概念输入和输出的相关头文件和类cout对象cin对象格式化输入输出2标准输入/输出2-1数据的输入和输出(input/output简写为I/O)C+中的I/O操作是通过一组标准I/O函数和I/O流来实现的标准输入通常是指键盘标准输出通常是指显示器(也称控制台)可以用文件代替标准输入和输出设备3标准输入/输出2-2对标准输入设备和标准输出设备的输入输出简称为标准I/O对在外存磁盘上文件的输入输出简称为文件I/O对内存中指定的字符串存储空间的输入输出简称为串I/O4控制台知识点默认整个屏幕共有80列(或40列)25行

2、的文本单元, 每个单元包括一个字符和一个属性, 字符即ASCII 码字符注意点:1、当输出超出屏幕的右边界时会自动转到下一行的开始处继续输出;2、当屏幕内填满内容仍没有结束输出时, 屏幕将会自动逐行上卷直到输出结束为止5C+流的概念C+中把数据之间的传输操作称作流输出流:可以表示数据从内存传送到某个载体或设备中输入流:可以表示数据从某个载体或设备传送到内存缓冲区变量中6输入和输出的类输入和输出包括的类主要有ios,istream,ostream,iostream,ifstream,ofstream,fstream,istrstream,ostrstream,strstream等。ios为根基类

3、,它直接派生四个类:输入流类istream、输出流类ostream、文件流基类fstreambase和字符串流基类strstreambase。7头文件#inlcude 这是一个预处理命令当需要进行标准I/O操作时,则必须包含头文件iostream.hiostream.h系统头文件包含有:ios,iostream, istream, ostream等。8四个输入输出对象C+为用户进行标准I/O操作定义了四个类对象: cin,cout,cerr和clogcin为istream流类的对象,代表标准输入设备键盘,后三个为ostream流类的对象ccerr和clog含义相同,均代表错误信息输出设备显示器

4、9内存数据流显示器流对象cout键盘数据流内存流对象cin重载运算符C+的流通过重载运算符“”执行输出操作。输出操作是向流中插入一个字符序列,因此,在流操作中,将运算符“”称为插入运算符。函数原形: ostream& operator(简单类型标识符); 简单类型标识符可以为char,signed char,int, unsigned char,short,unsigned short,long, unsigned int,unsigned long,float,double, long double,char*,signed char*,void * unsigned char*之中的任何一

5、种10cout输出示例11#include void main()char sex=M;int age=40;char name21=T-BAG;coutName:nameendl;coutSex:sexendl;coutAge:ageC+的流通过重载运算符“”执行输入操作。输入操作是从流中提取一个字符序列,因此,将运算符“”称为提取运算符。函数原型: istream& operator(简单类型标识符&);简单类型标识符除了与在ostream流类中声明操作符重载函数给出的所有简单类型标识符基本相同以外,少一个void* 类型12cin输入示例#include void main()char

6、sex=M;int age=0;float pay=0.0;char name21=;coutname;coutsex;coutagepay;13格式化的输入输出数据输入输出的格式控制使用系统头文件iomanip.h中提供的操纵符。把它们作为插入操作符)的输出对象即可。如setiosflags、setw、setfill、setprecision、hex、oct等通过调用流的成员函数控制格式,如setf、unsetf、width、fill、precision等。优点是在设置格式同时,可以返回以前的设置,便于恢复原来的设置。14常用的流操纵算子流操纵算子功能描述setbase(int base)以

7、进制基数base为输出整数值setprecision(int n)将浮点精度设置为n(vc6.0中是设置有效数字)setw(int n)按照n个字符来读或者写flush刷新ostream缓冲区ends插入字符串结束符,然后刷新ostream缓冲区endl插入换行符,然后刷新ostream缓冲区ws跳过空白字符setfill(int ch)用ch填充空白字符dec十进制oct八进制hex十六进制setiosflags(long lflags)根据ios类中的枚举设置特定的格式15使用流操纵算子#include #include #include void main()int n;double l

8、og2 = log( 2.0 );cout n;cout n in hexadecimal is: hex n endl dec n in octal is: oct n endl;cout log(2) with precisions 0-2.n log(2)= log2 endl;coutsetw(15)setprecision(0)log2n;coutsetw(15)setprecision(1)log2n;coutsetw(15)setprecision(2)log2n; 16ios类中的枚举常量在根基类ios中定义一个无名枚举类型,其中定义的每个枚举常量都是用于设置控制输入输出格式的

9、标志使用的。该枚举类型定义如下:enum skipws,left,right,internal,dec,oct,hex,showbase, showpoint, uppercase,showpos,scientific,fixed, unitbuf,stdio;使用时在每个枚举类型常量前加上ios:coutsetw(30)setiosflags(ios:left)“Hello”;17枚举常量的含义枚举常量用途枚举常量用途skipws跳过空白符showbase显示基指示符left左对齐showpoint输出小数尾数0right右对齐uppercase十六进制大写internal符号左对齐,数值右

10、对齐showpos输出正数符号dec十进制scientific科学计数法oct八进制fixed小数按定点表示hex十六进制18ios类的成员函数3-1ios类提供成员函数对流的状态进行检测和进行输入输出格式控制等操作函数原型功能描述int bad()操作出错时返回非0值int eof()读取到流中最后的文件结束符时返回非0值int fail()操作失败时返回非0值void clear()清除bad,eof和fail所对应的标志状态,使之恢复为正常状态char fill()返回当前使用的填充字符char fill(char c)设置流中用于输出数据的填充字符为c的值,返回此前的填充字符19ios

11、类的成员函数3-2函数原型功能描述long flags();返回当前用于I/O控制的格式状态字long flags(long f)设置格式状态字为f的值,返回此前的格式状态字int good()操作正常时返回非0值,当操作出错、失败和读到文件结束符时均为不正常,则返回0int precision()返回输出的有效数字的位数int precision(int n)设置浮点数的输出精度为n,返回此前的输出精度int rdstate()正常时返回0,否则返回非0值,与good()相反long setf(long f)设置相应的格式化标志,返回此前的设置,多个枚举常量可用按位或操作符连接long un

12、setf(long f)根据参数f清除相应的格式化标志返回此前的设置int width()返回当前的输出域宽int width(int w)设置下一个数据值的输出域宽为w,返回上一个数据值所规定的域宽20ios类的成员函数3-3#includevoid main()int x=123; double y=-3.456789;/设置输出下一个数据的域宽为10,默认右对齐,默认填充空格coutx=; cout.width(10); coutx; couty=; cout.width(10); coutyendl; /设置输出下一个数据的域宽为10,设置按左对齐输出cout.setf(ios:lef

13、t);coutx=;cout.width(10);coutx;couty=;cout.width(10);coutyendl;cout.fill(*); /设置填充字符为*cout.precision(3); /设置浮点数输出精度为3cout.setf(ios:showpos); /设置正数的正号输出coutx=;cout.width(10);coutx;couty=;cout.width(10);coutyendl;21istream的字符的输入函数int istream:get()函数功能:从输入流中接受一个字符,并返回参数:无返回值:字符的ASCIIistream& istream:ge

14、t(char &c)函数功能:从输入流中接受一个字符,存储在参数中参数:用于接受字符的变量(引用)返回值:返回一个对*this(调用对象)的引用22get()函数的使用#include void main()char menu;cout“Enter Menu0-7:”;/*get函数弥补了提取运算符不能提取空白字符的缺点,它能把任意字符包括空白符提取出来*/menu=cin.get();/cin.get(menu);23ostream的字符的输出函数函数原型:ostream& ostream:put(char c)功能:向输出流中插入一个字符(输出一个字符)参数:需要输出的字符返回值:返回一个

15、对*this的引用24注意:使用put函数输出数据不受格式影响,即设置的域宽和填充字符对于put函数不起作用。put()函数的使用25#include void main()char ch=H;cout.put(ch);cout.put(101);cout.put(l);cout.put(l);cout.put(o);cout.put(n);编程规范养成良好的编程习惯编程规范的基本原则:提高代码的可读性- 关键字不能用- 系统的函数名称及系统其它的标识符不能使用- 标识符要有足够的描述性- 尽量使用英文单词- 不要过多的使用缩写- 采用两种命名规范26camel和Pascal两种大写方式cam

16、el大写方式第一个字母小写,其它每个单词的首字母大写示例:studentName,fileState Pascal大写方式各单词首字母均为大写 示例:IsValidEmail,PrintReport27代码书写规范要求对代码使用TAB键进行缩进 函数的名称左对齐,和也是顶端左对齐。函数里面的代码,也称为代码块或复合代码,要求进行缩进。遇到循环和分支结构的处理,循环和分支下的代码块要求再进行缩进,假设循环和分支里又嵌套了循环和分支,代码块应该层层缩进 注释函数的前面和复杂算法的附近都可以添加说明28标识符的命名规范变量的命名规范变量的名称使用camel大写方式进行命名 匈牙利命名法 常量的命名规

17、范每一个英文字符大写 ,每个单词之间可以用_连接 标签的命名规范要求有一定的描述性,顶端左对齐枚举的命名规范使用Pascal大写 29函数的命名规范函数的命名规范函数名称基本以动词开始,用Pascal大写方式命名示例: InitNameArray 、 CloseDialog参数的命名规范参考变量的命名规范30函数的注释/*-function:判断分数格式是否正确params:score 客户输入的分数returns:1 分数格式正确0 分数格式错误-*/int IsValidScore(char *score)/*/ 31编程好习惯初始化变量尽可能使用局部变量一个函数只有一个紧凑的职责避免函数过长避免函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论