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

C++语言程序设计 教学课件 ppt 作者 邓振杰 第12章

48页
  • 卖家[上传人]:E****
  • 文档编号:89343272
  • 上传时间:2019-05-23
  • 文档格式:PPT
  • 文档大小:179KB
  • / 48 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第12章 文 件 处 理,12.1 文 件 简 介 12.2 文 件 和 流 12.3 顺序文件的访问 12.4 随机文件的访问,12.1 文 件 简 介,C+的文件一般指存储在外部介质上的数据集合。 这里的外部存储介质一般特指磁盘,磁盘上的文件称为磁盘文件。对磁盘文件的输入/输出简称为文件I/O。 每个文件都对应一个文件名,,文件名由文件主名和扩展名两部分组成,它们之间用圆点分开。文件主名是由用户命名的一个有效的C+标识符,为了便于记忆和使用,一般使文件主名的含义与所存的文件内容相一致。 文件扩展名是由用户命名的13个字符组成,是有效的C+标识符,通常用它来区分文件的类型。,在C+程序中保存数据的文件按存储格式分为两种类型,一种为ASCII码文件或文本文件,它的每一个字节存放一个ASCII代码,代表一个字符。另一种为内部格式文件或二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。,12.2 文 件 和 流,C+语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。一个文件是一个字节流或二进制流。它把数据看作是一连串的字符(字节),而不考

      2、虑记录的界限。,这种以字节流或二进制流组成的文件被称为流式文件。以字符为单位进行操作增加了处理的灵活性。 为了进行文件I/O操作,C+定义了文件流。文件流是控制台流的扩展,是从控制台流类派生来的,它继承了控制台流类的所有特点。文件流类根据自己的需求,增加了控制台流类所没有的特性。,文件流可分为3类:输入文件流ifstream、输出文件流ofstream以及输入/输出文件流fstream。 和其他高级语言一样,对文件的读写之前应打开该文件,在完成操作之后应及时关闭该文件。 调用相应流中的open成员函数或构造函数,按照一定的打开方式打开一个文件。,open的函数原型为: void open( const char* szName, int nMode, int nProt = filebuf:openprot ); 其中,szName是文件名,它可包含驱动器符和路径说明;nMode说明文件打开的模式,表13.1给出了nMode的取值范围。 关闭任何一个流对象所对应的文件,就是用这个流对象调用close()成员函数即可。,12.3 顺序文件的访问,对文件的操作总是从文件指针位置开始顺序向后

      3、移动,所以称之为顺序文件。 12.3.1 建立顺序访问文件 1. 建立文本文件,【12.1】使用操作器、设置标志位和成员函数向输出文件中输出文本。 #include #include #include void main(void) fstream output;,output.open(“d:datatest.dat“,ios:out); if(output.fail() cerr“Can not open test.dat“endl; /打开文件错误时,给出错误提示 abort(); /终止程序运行 ,outputsetiosflags(ios:left)setw(13)“Name“setw(10)“Class“ setw(10)“Age“endl; outputsetiosflags(ios:left)setw(13)“Zhang San“setw(10)10 setw(10)21endl; outputsetiosflags(ios:left)setw(13)“Li Si“setw(10)10 setw(10)19endl;,outputsetiosflags(ios:left

      4、)setw(13)“Wang Wu“setw(10)10 setw(10)20endl; outputsetiosflags(ios:left)setw(13)“Zhao Liu“setw(10)10 setw(10)22endl; for(char ch=a;ch=z;ch+) output.put(ch); output.write(“n1234567890“,11); output.close(); ,输出到d:datatest.dat文件中的数据为: Name Class Age Zhang San 10 21 Li Si 10 19 Wang Wu 10 20 Zhao Liu 10 22 abcdefghijklmnopqrstuvwxyz 1234567890,2. 建立二进制文件 为执行二进制文件操作,必须首先使用ios:binary模式指示符打开文件。,【12.2】打开一个二进制文件并向其中写入数据。 #include #include void main(void) fstream output; output.open(“d:databinary_data.dat

      5、“,ios:out|ios:binary);,if(!output) cerr“Can not open binary_data.dat“endl; abort(); ,double x=3.1415926,6.2831852,9.4247778,12.5663704,15.707963; for(int i=0;i5;i+) output.write(char*) ,12.3.2 读取顺序文件中的数据 1. 读取文本文件 【12.3】读取文件内容到显示器。 #include #include void main(void) fstream input(“d:datatest.dat“,ios:in);,if(input.fail() cerr“Can not open test.dat“endl; abort(); while(!input.eof() cout.put(char)input.get(); ,2. 读取二进制文件 【12.4】读写二进制文件。该程序先打开输入文件,在文件中输入二进制数据,关闭文件。然后再打开该文件,从中读二进制数据并显示在屏幕上。 #include #

      6、include #include ,void main(void) fstream output; output.open(“d:databinary_data.dat“,ios:out|ios:binary); if(!output) cerr“Can not open binary_data.dat“endl; abort(); ,double x=3.1415926,6.2831852,9.4247778,12.5663704,15.707963; for(int i=0;i5;i+) output.write(char*),if(input.fail() cerr“Can not open binary_data.dat“endl; abort(); ,for(i=0;i5;i+) input.read(char*) ,运行程序,输出结果为: 3.1415926 6.2831852 9.4247778 12.5663704 15.707963,12.3.3 更新顺序文件中的数据 对于一个已经存在的文件,可以用添加的方式修改文件的内容。,【12.5】在文件d:datatest.d

      7、at尾部输出一行字符:Liu Ba 10 18 #include #include #include void main(void) fstream output; output.open(“d:datatest.dat“,ios:app);,if(output.fail() cerr“Can not open test.dat“endl; abort(); outputsetiosflags(ios:left)setw(13)“Liu Ba“setw(10)10 setw(10)18endl; output.close(); ,12.4 随机文件的访问,12.4.1 建立随机访问文件 通过控制文件指针的定位,程序可以对文件中某一特定位置进行读写操作。 这就是所谓的随机访问文件。,【12.6】随机文件的建立和存取。假定有10名学生的姓名、学号、年龄、性别、总成绩等数据,假定需要读取第1、3、5、7、9个学生的数据。 #include #include struct student_info, char name20; int num; int age; char sex; double

      8、 score; ;,void main(void) student_info cls1= “zhao“,1,20,M,290.5, “qian“,2,19,M,282.5, “sun“,3,20,F,288.5, “li“,4,21,M,275.5, “zhou“,5,22,M,256.5,“wu“,6,20,F,289.5, “zheng“,7,19,M,265.5, “wang“,8,20,F,278.5, “feng“,9,21,F,268.5, “chen“,10,20,F,287.5, ; fstream inout(“random.dat“,ios:out|ios:in|ios:binary);,if(!inout) cerr“Can not open random.dat“endl; abort(); ,for(int i=0;i10;i+) inout.write(char*),inout.read(char*) ,运行程序,输出结果为: zhao 1 20 M 290.5, sun 3 20 F 288.5, zhou 5 22 M 256.5, zheng 7 19

      9、 M 265.5, feng 9 21 F 268.5,12.4.2 读取随机文件中的数据 【12.7】在一个文件中存入一串整型数据,根据屏幕提示输入序号,显示文件指针的位置和数据。 #include #include ,void main(void) fstream inout(“random_r.dat“,ios:out|ios:in|ios:binary); if(!inout) cerr“Can not open random_r.dat“endl; abort(); ,for(int i=0;in; inout.seekg(n*sizeof(int),ios:beg);,cout“The positon of file pointer after read is: “inout.tellg()endl; inout.read(char*) ,运行程序,输出结果为: Please type in a number:between 0-99 8(注:此数据为用户通过键盘输入的,输入完毕请回车) The positon of file pointer after read is: 32 The data you read is: 8,12.4.3 数据写入随机文件 【12.8】程序先建立一个随机文件,然后将指定位置的数据用新数据代替,最后显示写入的数据。 #include #include ,void main(void) fstream inout(“random_w.dat“,ios:out|ios:in|ios:binary); if(!inout) cerr“Can not open random_w.dat“endl; abort(); ,for(int i=0;in; inout.seekp(n*sizeof(int),ios:beg); int m

      《C++语言程序设计 教学课件 ppt 作者 邓振杰 第12章》由会员E****分享,可在线阅读,更多相关《C++语言程序设计 教学课件 ppt 作者 邓振杰 第12章》请在金锄头文库上搜索。

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