C语言大学教程 C++语言第23章.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言大学教程C语言第23章

* 输入数字时产生的错误 过多的字符 没有输入的输入 输入长度的错误 * 常见的文件I/O错误 文件不存在 新文件使用的文件名已经作为现有的文件名 磁盘空间不够 驱动器上没有磁盘 * * 在创建文件流对象时,可以把它与磁盘上的文件关联起来。还可以创建与特定文件没有关联的文件流对象,在程序运行中使用成员函数将其和特定文件建立关联。流与文件的关联关系如图5.6所示。连接为了读写磁盘文件,该文件必须被打开,操作系统将其关联到程序中,并根据设定的方式使用该文件。将文件流关联到具体文件的功能可以由打开函数完成。可以修改与文件流关联的磁盘文件,也可以在不同时间用同一个ofstream对象写入不同的文件。程序不需要文件时,文件应从该流中断开,下面我们讨论文件的打开和关闭操作。 * * prot决定文件的访问方式,取值为: 0 普通文件 1 只读文件 2 隐含文件 3 系统文件 一般情况下,该访问方式使用默认值。 * * 图 例如: istream input ; …… beg end cur cur input . seekg ( -10 , ios :: end ) ; // 读指针从流的结尾,向前移动 10 个字节 istream 类操作流读指针的成员函数 二进制文件的随机读写 Eg: istream input ; long pos = input . tellg ( ) ; // 获取当前位置指针 input number ; // 读入一个整数,指针后移 4 字节 …… input . seekg ( pos ) ; // 指针返回原来位置 input number ; // 重读该整数 beg end cur … i-1 i i+1 … 200311 istream 类操作流读指针的成员函数 二进制文件的随机读写 ostream ostream :: seekp ( long pos ) ; 写指针从流的起始位置向后移动由参数指定字节 ostream ostream :: seekp ( long off , ios::seek_dir ) ; 写指针从流的seek_dir位置移动由 off 指定字节 ostream ostream :: tellp ( ) ; 返回写指针当前所指位置值 ostream 类操作流写指针的成员函数 二进制文件的随机读写 例 将Fibonnaci数列的前40项写入二进制文件fib.bin中,然后输出其中的奇数项,每行输出5个数。 #include iostream #include fstream #includeiomanip using namespace std; void main( ) { fstream iofile(fib.bin, ios::in|ios::out|ios::binary); if(!iofile) { coutCan not open file: fib.binendl; exit(1); } 例 续1 long pos = iofile.tellp( ); coutBegin posi=posendl; int f1=1, f2=1; for(int i=0; i20; i++) { iofile.write((char*)f1, sizeof(int)); iofile.write((char*)f2, sizeof(int)); f1=f1+f2; f2=f2+f1; } pos=iofile.tellp( ); //获取当前位置 coutEnd posi=posendl; 例 续2 iofile.seekp(0, ios::beg); //将读写位置指针重新定位于文件起始位置 for(int i=0; i20; i++) { iofile.read((char*)f1, sizeof(int)); //读入 iofile.seekg(sizeof(int), ios::cur); //移动 coutsetw(10)f1; if((i+1)%4==0) coutendl; } iofile.close( ); } 2. 与文件指针有关的流成员函数 文件流提供一些有关文件指针的成员函数: infile.gcoun

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档