第7章_输入输出流.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 方法二:在定义文件流对象时指定参数。 在声明文件流类时定义了带参数的构造函数,其中包含了打开磁盘文件的功能,因此,可以在定义文件流对象时指定参数,调用文件流类的构造函数来实现打开文件的功能。如: ostream outfile ( “a1.dat” , ios::out ); 一般多用此方法,因为比较方便,其作用与open函数相同。 上面两种方法中的输入输出方式见下表所示: * * * * 说明: (1)每一个打开的文件都有一个文件指针,该指针的初始位置由I/O方式指定,每次读写都从文件指针的当前位置开始。当文件指针移到最后,就会遇到文件结束EOF(文件结束符也占一个字节,其值为-1),此时流对象的成员函数eof的值为非0值(一般认为1),表示文件结束了。 (2)如果打开操作失败,open函数的返回值为0(假),如果是用调用构造函数的方式打开文件,则流对象的值为0。可以据此测试打开是否成功。如: * * if( outfile.open ( “a1.dat” , ios::app )==0 cout“open.error”; 或 if( !outfile.open ( “a1.dat” , ios::app )) cout“open.error”; 2. 关闭磁盘文件 在对已打开的磁盘文件的读写操作完成后,应关闭该文件。关闭文件用成员函数close。如: outfile.close( ); //将输出文件流所关联的磁盘文件关闭 * * 7.4.4 对ASCII文件的操作 对ASCII文件的读写操作可以用以下两种方法: (1)用流插入运算符“”和流提取运算符“”输入输出标准类型的数据。 对磁盘文件的操作,可以通过文件流对象和流插入运算符“”和流提取运算符“”实现对磁盘的读写,如同用cin,cout和,对标准设备进行读写一样。 (2)用文件流的put,get,getline等成员函数进行字符的输入输出。 * * 例7.11 写入磁盘文件 #include iostream #include fstream using namespace std; int main( ) { int a[10]; ofstream outfile(f1.dat“ , ios::out); //定义文件流对象,打开磁盘文件f1.dat if( !outfile ) //如果打开失败, outfile返回0值 { cerropen error!endl; exit(1); } * * coutenter 10 integer numbers:endl; for( int i=0 ; i10 ; i++ ) { cina[ i ]; outfile a[ i ] “ ”; //向磁盘文件f1.dat输出数据 } outfile.close( ) ; //关闭磁盘文件f1.dat return 0; } 说明: (1)在VC中调试时必须包含头文件:fstream。 * * (2) ofstream outfile(“f1.dat“ , ios::out);语句中的参数ios::out可以省略,这是默认形式。即下面两种写法等价: ofstream outfile(f1.dat“ , ios::out); ofstream outfile(f1.dat“ ); (3)如果打开成功,则文件流对象outfile的返回值为非0值;如果打开失败,则返回值为0(假) (4)函数exit(1)为系统函数,表示结束运行。其中的参数为任意整数,可用0,1或其他整数 (5) outfilea[ i ]“ ”; 就是把标准输出流对象cout换成文件输出流对象outfile而已。 * * 例7.12 读出例7.11的磁盘文件并找出最大数 #include iostream #include fstream using namespace std; int main( ) { int a[10] , max , i , order ; ifstream infile( f1.dat , ios::in ); * * if( !infile ) { cerropen error!endl; exit(1); } for(i=0;i10;i++)

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档