分享
分销 收藏 举报 申诉 / 4
播放页_导航下方通栏广告

类型第九章C--文件操作.doc

  • 上传人:仙人****88
  • 文档编号:7023882
  • 上传时间:2024-12-25
  • 格式:DOC
  • 页数:4
  • 大小:36KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第九 文件 操作
    资源描述:
    第九章 文件 常用的文件有两类,一类是程序文件,如c++的源程序文件(.cpp)等,另一类是数据文件。在程序运行时,常常需要将一些数据输出到磁盘中存放起来,以后需要时再从磁盘中输入到计算机内存。这种磁盘文件就是数据文件。程序中的输入和输出的对象就是数据文件。 根据文件数据的组织形式,可分为ASCII文件和二进制文件。 对数据文件读或写,都要先建立或打开这个数据文件。 C++语言把文件看成有序ASCII码,建立和打开一个文件,实现简单的文件输入和输出操作。 在C++语言中能够比较简单实现对文件的输入、输出操作。 在这章里,会详细解释ASCII文件的输入输出的每个细节。ASCII文件又称文本文件或字符文件。它的每个字节放一个ASCII码,代表一个字符。二进制文件不经常使用,就不介绍了。 由程序进行文件处理时,必须要包含头文件<fstream>。这个文件定义了文件处理相关的指令,使用时与cin 和cout非常相似。 一、把数据写到指定的文件   把数据输出到文件,要用输出文件流,建立与某个文件相关联的输出文件流,可以使用下面的语句: Ofstream 变量名(”文件名”) Ofstream表示输入文件流,用来声明变量的类型。括号中的数据是对这个输出文件流进行初始化。文件名可包括路径和文件名,告诉计算机这个输出文件对应磁盘上的哪个文件。例如 ofstream fout("e:\dev-c++\one.out"); 定义了一个输出文件流fout,同时把one.out文件与fout相关联。对fout的操作就是对one.out文件的操作。通过对fout的操作,把数据写入到文件并保存起来。 完成文件操作后,应该把文件关闭。关闭文件的方法是:fout.close(); 即调用文件流的成员函数close(). 关闭文件是解除one.out磁盘文件与fou流的关联,原来设置的工作方式也随之失效。这样就不能通过文件流对one.out文件进行输出操作了。 二、从指定文件中读取数据  从文件中读取数据可以使用输入文件流,建立与某文件相关联输入文件流。 例如:ifstream fin(“文件名”); 当文件名为one.in时,什么语句表述为:ifstream fin(“one.in”); 定义了一个输入文件流fin,同时把one.in文件与fin相关联。对fin的操作就是对one.in文件的操作。通过对fin的操作,把数据写入到内存中。 完成文件操作后,应该把文件关闭。关闭文件的方法是:fin.close(); 应用举例 [例1]、总留空时间(shi.cpp) 【问题描述】未来工程师的竞赛中,设计的飞船在空中可以逐个放出纸蜻蜓,每个纸蜻蜓在空中飘的时间有长有短。从第一个放出的纸蜻蜓开始降落时间到全部纸蜻蜓接触地面的时间的差的绝对值,叫总留空时间。 【输入文件】 文件名:time.in 。文件中有二行,第一行只有一个整数n,是纸蜻蜓的个数。不用判断n的合理性。1<=n<=1000. 第二行有n对用一个空格分隔的整数,是每只纸蜻蜓的开始降落时间和接触地面的时间。 【输出文件】 文件名:time.out 。只有一个整数。从第一行第一列的位置开始输出总留空时间。 【举例】 time.in 内容: 3 4 17 2 10 5 11 time.out内容如下 15 参考程序如下: #include <iostream> #include <fstream>//输入、输出文件库 using namespace std; ifstream fin("shij.in");//将外部文件shij.in与fin建立联系,对fin的操作,就是对//shij.in的操作。 ofstream fout("shij.out");//同上,对fout的操作就是对shij.out文件的操作。 int main() { int n,i,max,min,x,y; max=-1;min=32768; fin>>n;//读入数据行数 for(i=1;i<=n;i++) { fin>>x>>y;//每行读入两个数 if(x<min)min=x;//找最小值 if(y>max)max=y;//找最大值 } fout<<max-min<<endl;//总滞空时间 fin.close();//关闭输入文件 fout.close();//关闭输出文件 return 0; } [例2]、数手指中的学问: 【问题描述从右手拇指开始从右向左数, 数1大母指,数2食指,数3中指,数4无名指数,数5小指数。此时开始从左向右数,无名指数6,中指数7,食指数8,拇指数9,再改变方向,食指数10,中指数11,无名指数12,小指数13,再改变方向,无名指数14,中指数15,食指数16,拇指数17……。 按上述规律,如果随便说出一个数,你能够立即指出它应落在哪个手指上吗?例如33,应落在拇指上。 试设计程序解决这个问题。 从文件”shouzhi.in”中读入个数字,输出到文件“shouzhi.out”中,是哪个手指。 例如: 【输入文件】 shouzhi.in 33 【输出文件】 shouzhi.out mu zhi 参考程序如下: #include <iostream> #include <fstream> using namespace std; ifstream fin("shouzhi.in"); ofstream fout("shouzhi.out"); int main() { int n,i,j; char a[8]={'s','m','s','z','w','x','w','z'}; fin>>n; j=n%8; switch(a[j]) { case 's':fout<<"shi zhi"<<endl; break; case 'm':fout<<"mu zhi"<<endl; break; case 'z':fout<<"zhong zhi"<<endl; break; case 'w':fout<<"wu ming zhi"<<endl; break; case 'x':fout<<"xiao zhi"<<endl; break; defanlt: fout<<"error"<<endl; break; } fin.close(); fout.close(); return 0; } 文件读写的一些概念: ofstream fout("file.dat", ios::binary);   "ios::binary"是你提供的打开选项的额外标志. 默认的, 文件以ASCII方式打开, 不存在则创建, 存在就覆盖. 这里有些额外的标志用来改变选项。   ios::app 添加到文件尾   ios::ate 把文件标志放在末尾而非起始。   ios::trunc 默认. 截断并覆写文件。   ios::nocreate 文件不存在也不创建。   ios::noreplace 文件存在则失败。   文件状态   一个状态函数是eof(), 它返回是否标志已经到了文件末尾。 主要用在循环中。 例如, 这个代码断统计小写‘e’ 在文件中出现的次数。 ifstream fin("file.txt"); char ch; int counter; while (!fin.eof())//如果文件没有到文件尾,则执行循环题,否则不循环。 { ch = fin.get(); if (ch == ‘e’) counter++; } fin.close(); fout.close();
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:第九章C--文件操作.doc
    链接地址:https://www.zixin.com.cn/doc/7023882.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork