计算机程序设计基础_精讲多练CC++_第8章_第1页
计算机程序设计基础_精讲多练CC++_第8章_第2页
计算机程序设计基础_精讲多练CC++_第8章_第3页
计算机程序设计基础_精讲多练CC++_第8章_第4页
计算机程序设计基础_精讲多练CC++_第8章_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第8章文件与数据输入输出,3,教学目标,(1)了解文件和流的概念;(2)了解输入输出流类或标准I/O函数库的结构和机制;(3)了解文件的打开与关闭操作及文件读写的基本方法。,4,基本内容,8.1输入输出与标准库8.2标准输入流8.3标准输出流8.4文件,5,8.1输入输出与标准库,标准库构成标准函数库从C语言中继承下来C格式的输入输出函数、字符与字符串处理函数、数学函数、时间日期函数、动态分配函数以及一些实用函数标准类库标准C+的I/O流类、字符串类、数字类、异常处理和杂项类以及STL容器类由编译器厂商提供,与平台、厂商和编译器版本无关,6,输入输出流类库iostream,iostream类库提供了数百种I/O功能,其接口部分分别包含在几个头文件中:无格式I/O和格式化I/O:头文件iostream格式化I/O:包含头文件iomanip文件处理操作:包含头文件fstream,7,输入/输出流类的继承层次结构,8,8.2标准输入流,cin是类istream内置的标准流类对象,能构成从键盘到内存的标准输入流。通过流提取运算符“”,变量从流中提取数据。“”会自动忽略所有的空白字符,因此无法输入包含空格符的字符串。如:charname20;cinname;假如输入姓名“TomHanks”时,变量name中只有“Tom”,9,输入流对象的成员函数get(),这个函数有3种重载形式:cin.get()用于从指定的输入流中读取一个字符,函数的返回值即为读入的字符。cin.get(ch)用于从指定的输入流中读取一个字符,并将该字符赋给字符型变量ch。cin.get(字符数组buf,字符个数n,结束符delim)用于从指定的输入流中读取n-1个字符,并将这些字符赋给字符数组buf。如果还没有读取完n-1个字符之前就遇到结束符delim,则可提前结束读取过程。结束符delim的默认值为换行符n。,10,例8-2:包含空格的字符串的输入与输出,#includeusingnamespacestd;intmain()charch1,ch2,ch3,buf150,buf250;coutbuf1;cout使用运算符读取句子:buf1endl;ch1=cin.get();ch2=cin.get();cout使用cin.get()继续读取:ch1endl;cout使用cin.get()继续读取:ch2endl;cin.get(ch3);cout使用cin.get(ch3)继续读取:ch3endl;cin.get(buf2,50);cout使用cin.get(buf2,50)继续读取:buf2endl;return0;,11,输入流对象的成员函数,getExtractscharactersfromthestreamupto,butnotincluding,delimiters.getlineExtractscharactersfromthestream(extractsanddiscardsdelimiters).readExtractsdatafromthestream.ignoreExtractsanddiscardscharacters.peekReturnsacharacterwithoutextractingitfromthestream.gcountCountsthecharactersextractedinthelastunformattedoperation.,12,8.3标准输出流,输出流类ostream的标准输出流对象cout通过流插入运算符“”,把变量的值从内存输出到标准输出设备上。系统会自动根据不同的数据类型采用不同的默认方式输出。特殊要求的输出格式,需要格式化I/O使用流操纵符对输出操作进行格式化使用ios类的格式控制成员函数进行格式化,13,1.使用流操纵符对输出操作进行格式化,不带参数的流操纵符endldec/oct/hex十/八/十六进制带参数的流操纵符(注意:需包含头文件iomanip)setbase(intbase)设置数制转换基数为basesetfill(intch)将填充字符设置为chsetprecision(intp)设置数字精度setw(intw)将域宽设置为wsetiosflags(fmtflagsflags)开启flags中指定的标志resetiosflags(fmtflagsflags)关闭flags中指定的标志其中,流格式状态标志字(flags):ios:left在域中左对齐输出,右边显示填充字符ios:dec指定整数应作为十进制(基数10)值ios:hex指定整数应作为十六进制(基数16)值ios:showpos指定正数和负数前面分别加上+和-号ios:fixed指定浮点数以小数方式输出ios:scientific指定浮点数输出采用科学记数法,14,例8-4:改变整数的进制,#includeusingnamespacestd;intmain()intn=30;cout整数:nendl;cout以十六进制显示为:hexnendl;cout以十进制显示为:decnendl;cout以八进制显示为:octnendl;return0;,15,例8-3:设置实型数的精度,#include#include#includeusingnamespacestd;intmain()doubler=sqrt(2.0);inti;coutr=rendl;/设置输出为定点小数方式coutsetiosflags(ios:fixed);cout以定点小数方式,采用不同精度输出:endl;for(i=0;i=4;i+)coutsetprecision(i)r=rendl;/取消定点小数输出方式并设置为科学记数方式coutresetiosflags(ios:fixed)setiosflags(ios:scientific);cout以科学记数方式,采用不同精度输出:endl;for(i=0;i=4;i+)coutsetprecision(i)r=rendl;return0;,16,例8-5:设置输出宽度、填充字符和对齐方式,#include#includeusingnamespacestd;intmain()doublepi=3.14159;/以默认方式输出coutpiendl;/设置输出宽度后进行输出coutsetw(10)piendl;/使用填充字符并设置输出宽度后进行输出coutsetfill(*)setw(10)piendl;/设置左对齐方式及输出宽度后进行输出coutsetiosflags(ios:left)setw(10)piendl;/取消左对齐方式coutresetiosflags(ios:left);/设置右对齐方式及输出宽度后进行输出coutsetiosflags(ios:right)setw(12)piendl;return0;,17,2.使用ios类的格式控制成员函数对输出操作进行格式化,格式化函数width(w)设置显示字段宽度为wprecision(p)设置浮点数精度为pfill(ch)设置填充字符为chsetf(flags)设置输出格式状态为flagsunsetf(flags)清除格式标记flags其中,流格式状态标志字(flags)同前。,#includeusingnamespacestd;intmain()cout.precision(4);cout.width(10);cout10.12345endl;cout.fill(*);cout.width(10);cout10.12345endl;cout.width(10);coutHi!endl;cout.width(10);cout.setf(ios:left);cout10.12345endl;cout.setf(ios:uppercase|ios:scientific);cout10.12345endl;cout.unsetf(ios:uppercase);cout10.12345读文件写文件使用类成员函数对文件流进行操作get读/put写一次读写一个字节istream,8.4.3文件的读写,/例8-6:写文件#include#includeusingnamespacestd;intmain()ofstreamoutfile(grade.txt);if(!outfile)cout文件打开失败!endl;return1;outfile程序设计95endl;outfile大学英语90.5endl;outfile高等数学93endl;outfile普通物理87.5score;coutcoursescore;coutcoursescore;coutcoursescore;coutcoursescored;ifstreaminfile(s,ios:binary);ofstreamoutfile(d,ios:binary);if(!infile|!outfile)cout文件打开失败!num;if(isprime(num)outfilenum;infile.close();outfile.close();return0;,/例8-11:源文件加行号#include#include#includeusingnamespacestd;intmain()ifstreaminfile(test.cpp);ofstreamoutfile(print.txt);if(!infile|!outfile)cout文件打开失败!endl;return1;charch;intline=1;outfi

温馨提示

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

评论

0/150

提交评论