电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

c++语言程序设计第11讲

26页
  • 卖家[上传人]:正仁
  • 文档编号:187289936
  • 上传时间:2021-07-26
  • 文档格式:PPT
  • 文档大小:129KB
  • / 26 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第十一章 流类库与输入/输出 清华大学 郑 莉 C+语言程序设计 1 C+语言程序设计清华大学 郑莉 本章主要内容 lI/O流的概念 l输出流 l输入流 l输入/输出流 2 C+语言程序设计清华大学 郑莉 I/O流的概念 l当程序与外界环境进行信息交换时,存在着两个 对象,一个是程序中的对象,另一个是文件对象。 l流是一种抽象,它负责在数据的生产者和数据的 消费者之间建立联系,并管理数据的流动。 l程序建立一个流对象,并指定这个流对象与某个 文件对象建立连接,程序操作流对象,流对象通过 文件系统对所连接的文件对象产生作用。 l读操作在流数据抽象中被称为(从流中)提取, 写操作被称为(向流中)插入。 3 C+语言程序设计清华大学 郑莉 输出流 l最重要的三个输出流是 ostream ofstream ostringstream 4 C+语言程序设计清华大学 郑莉 输出流对象 l预先定义的输出流对象: cout 标准输出 cerr 标准错误输出,没有缓 冲,发送给它的内容立即被输出。 clog 类似于cerr,但是有缓 冲,缓冲区满时被输出。 输出流 5 C+语言程序设计清华大学 郑莉 输

      2、出流对象 lofstream类支持磁盘文件输出 l如果在构造函数中指定一个文件名,当构造这个文件 时该文件是自动打开的 ofstream myFile(filename,iosmode); l可以在调用默认构造函数之后使用open成员函数打开 文件 ofstream myFile; /声明一个静态输出 文件流对象 myFile.open(filename,iosmode); /打开文件,使流对象与文件建立联系 ofstream* pmyFile = new ofstream; /建立一个动态的输出文件流对象 pmyFile-open(filename,iosmode); /打开文件,使流对象与文件建立联系 输出流 6 C+语言程序设计清华大学 郑莉 插入运算符() l插入()运算符是所有标准C+数据 类型预先设计的。 l用于传送字节到一个输出流对象。 输出流 7 C+语言程序设计清华大学 郑莉 控制输出格式 l控制输出宽度 为了调整输出,可以通过在流中放入 setw操纵符或调用width成员函数为每个项指定 输出宽度。 l例11-1 使用width控制输出宽度 #include usi

      3、ng namesoace std; int main() double values = 1.23,35.36,653.7,4358.24; for(int i=0;i4;i+) cout.width(10); cout valuesi n; 输出流 输出结果: 1.23 35.36 653.7 4358.24 8 C+语言程序设计清华大学 郑莉 例:使用*填充 #include using namespace std; int main() double values=1.23,35.36,653.7,4358.24; for(int i=0; i4; i+) cout.width(10); cout.fill(*); coutvaluesin; 输出流 输出结果: *1.23 *35.36 *653.7 *4358.24 9 C+语言程序设计清华大学 郑莉 例11-2使用setw指定宽度 #include #include using namespace std; int main() double values=1.23,35.36,653.7,4358.24; char *na

      4、mes=Zoot,Jimmy,Al,Stan; for(int i=0;i4;i+) coutsetw(6)namesi setw(10)valuesi endl; 输出流 输出结果: Zoot 1.23 Jimmy 35.36 Al 653.7 Stan 4358.24 10 C+语言程序设计清华大学 郑莉 例11-3设置对齐方式 #include #include using namespace std; int main() double values=1.23,35.36,653.7,4358.24; char *names=Zoot,Jimmy,Al,Stan; for(int i=0;i4;i+) coutsetiosflags(ios:left) setw(6)namesi resetiosflags(ios:left) setw(10)valuesi endl; 输出流 输出结果: Zoot 1.23 Jimmy 35.36 Al 653.7 Stan 4358.24 11 C+语言程序设计清华大学 郑莉 例11-4控制输出精度 #include #include us

      5、ing namespace std; int main() double values=1.23,35.36,653.7,4358.24; char *names=Zoot,Jimmy,Al,Stan; coutsetiosflags(ios:scientific); for(int i=0;i4;i+) coutsetiosflags(ios:left) setw(6)namesi resetiosflags(ios:left) setw(10)setprecision(1) valuesiendl; 输出流 输出结果: Zoot 1 Jimmy 4e+001 Al 7e+002 Stan 4e+003 12 C+语言程序设计清华大学 郑莉 进制 dec、oct和hex操纵符设置输入和输出 的默认进制。 输出流 13 C+语言程序设计清华大学 郑莉 输出文件流成员函数 l输出流成员函数有三种类型: 与操纵符等价的成员函数。 执行非格式化写操作的成员 函数。 其它修改流状态且不同于操 纵符或插入运算符的成员函数。 输出流 14 C+语言程序设计清华大学 郑莉 输出文件流成员函数 lop

      6、en函数 把流与一个特定的磁盘文件关联起来 。 需要指定打开模式。 lput函数 把一个字符写到输出流中。 lwrite函数 把内存中的一块内容写到一个输出文 件流中 lseekp和tellp函数 操作文件流的内部指针 lclose函数 关闭与一个输出文件流关联的磁盘文 件 l错误处理函数 在写到一个流时进行错误处理 输出流 15 C+语言程序设计清华大学 郑莉 例11-5向文件输出 #include using namespace std; struct Date int mo,da,yr; ; int main() Date dt = 6,10,92; ofstream tfile(date.dat,ios:binary); tfile.write(char *) tfile.close(); 输出流 16 C+语言程序设计清华大学 郑莉 二进制输出文件 l以通常方式构造一个流,然后使用 setmode成员函数,在文件打开后改变 模式。 l使用ofstream构造函数中的模式参量 指定二进制输出模式 l使用二进制操作符代替setmode成员函 数:ofs ) l提取运算符()对于所

      7、有标准C+数 据类型都是预先设计好的。 l是从一个输入流对象获取字节最容易 的方法。 lios类中的很多操纵符都可以应用于输 入流。但是只有少数几个对输入流对象 具有实际影响,其中最重要的是进制操 纵符dec、oct和hex。 输入流 20 C+语言程序设计清华大学 郑莉 输入流成员函数 lopen函数把该流与一个特定磁盘文件相关联。 lget函数的功能与提取运算符()很相像,主要的不 同点是get函数在读入数据时包括空白字符。(第6章介 绍过) lgetline的功能是从输入流中读取多个字符,并且允许 指定输入终止字符,读取完成后,从读取的内容中删除 终止字符。(第6章介绍过) lread成员函数从一个文件读字节到一个指定的内存区 域,由长度参数确定要读的字节数。 如果给出长度参数,当遇到文件结束或者在文本模式文 件中遇到文件结束标记字符时结束读取。 输入流 21 C+语言程序设计清华大学 郑莉 输入流成员函数 lseekg函数用来设置输入文件流中读 取数据位置的指针。 ltellg函数返回当前文件读指针的位置 。 lclose函数关闭与一个输入文件流关联 的磁盘文件。 输入流 22

      8、 C+语言程序设计清华大学 郑莉 例11-9 设置位置指针 #include #include using namespace std; int main() char ch; ifstream tfile(payroll,ios:binary|ios:nocreate); if(tfile) tfile.seekg(8); while(tfile.good() tfile.get(ch); if (!ch) break; coutch; else coutERROR: Cannot open file payroll.endl; tfile.close(); 输入流 23 C+语言程序设计清华大学 郑莉 例11-8 从文件读二进制记录 #include #include #include using namespace std; int main() struct double salary; char name23; employee; ifstream is(payroll,ios:binary|ios:nocreate); if (is) is.read(char *) cou

      9、temployee.name employee.salaryendl; else coutERROR: Cannot open file payroll.endl; is.close(); 输入流 24 C+语言程序设计清华大学 郑莉 例11-10 读文件并显示其中空格的位置 #include #include using namespace std; int main() char ch; ifstream tfile(payroll,ios:binary|ios:nocreate); if(tfile) while(tfile.good() streampos here = tfile.tellg(); tfile.get(ch); if(ch= ) coutnPosition here is a space; else coutERROR: Cannot open file payroll.endl; tfile.close(); 输入流 25 C+语言程序设计清华大学 郑莉 小结与复习建议 l主要内容 I/O流的概念、输出流、输入 流、输入/输出流。 l达到的目标 理解I/O流的概念,学会使用 I/O流类库实现文件输入/输出及格式 控制。 l实验任务 实验十一 26

      《c++语言程序设计第11讲》由会员正仁分享,可在线阅读,更多相关《c++语言程序设计第11讲》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.