2022年C中的文件操作完整 .pdf

上传人:Che****ry 文档编号:34265636 上传时间:2022-08-15 格式:PDF 页数:3 大小:56.53KB
返回 下载 相关 举报
2022年C中的文件操作完整 .pdf_第1页
第1页 / 共3页
2022年C中的文件操作完整 .pdf_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《2022年C中的文件操作完整 .pdf》由会员分享,可在线阅读,更多相关《2022年C中的文件操作完整 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C+中的文件操作C+中的文件操作在 C+中,有一个stream这个类,所有的I/O 都以这个“ 流” 类为基础的,包括我们要认识的文件I/O ,stream这个类有两个重要的运算符:1、插入器()向流输出数据。比如说系统有一个默认的标准输出流(cout) ,一般情况下就是指的显示器,所以, coutWriteStdout)从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以, cinx; 就表示从标准输入流中读取一个指定类型( 即变量x的类型 ) 的数据。在 C+中,对文件的操作是通过stream的子类fstream(filestream) 来实现的,所以,

2、要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。一、打开文件在 fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是:voidopen(const char*filename,intmode,intaccess);参数:filename:mode:要打开的文件名要打开文件的方式打开文件的属性access:打开文件的方式在类ios( 是所有流式I/O 类的基类) 中定义,常用的值如下:ios:app :ios:ate:ios:binary:ios:in :以追加的方式打开文件文件打开后定位到文件尾,ios:app就包含有此属性

3、以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文文件以输入方式打开ios:out:文件以输出方式打开ios:nocreate :不建立文件,所以文件不存在时打开失败ios:noreplac e:不覆盖文件,所以打开文件时如果文件存在失败ios:trunc:如果文件存在,把文件长度设为0可以用 “ 或” 把以上属性连接起来,如ios:out|ios:binary打开文件的属性取值是:0:普通文件,打开访问1:只读文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页

4、,共 3 页 - - - - - - - - - 2:隐含文件4:系统文件可以用 “ 或” 或者“+”把以上属性连接起来,如3或1|2 就是以只读和隐含属性打开文件。例如:以二进制输入方式打开文件c:config.sysfstreamfile1;file1.open(c:config.sys,ios:bina ry|ios:in,0);如果 open函数只有文件名一个参数,则是以读/ 写普通文件打开,即:file1.open(c:config.sys);file1.open(c:config.sys,ios:in|ios:out,0);另外, fstream还有和open() 一样的构造函数,

5、对于上例,在定义的时侯就可以打开文件了:fstreamfile1(c:config.sys);特别提出的是,fstream有两个子类:ifstream(inputfilestream) 和ofstream(outpufilestream) ,ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。ifstreamfile2(c:pdos.def);/以输入方式打开文件ofstreamfile3(c:x.123);/以输出方式打开文件所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用 ifstream来定义;如果想以输出方式打开,就用of

6、stream来定义;如果想以输入/ 输出方式来打开,就用fstream来定义。二、关闭文件打开的文件使用完成后一定要关闭,fstream提供了成员函数close()来完成此操作,如:file1.close();就把file1相连的文件关闭。三、读写文件读写文件分为文本文件和二进制文件的读取,对于文本文件的读取比较简单,用插入器和析取器就可以了;而对于二进制的读取就要复杂些,下要就详细的介绍这两种方式1、文本文件的读写文本文件的读写很简单:用插入器()从文件输入。假设file1是以输入方式打开,file2以输出打开。示例如下:file2i;/从文件输入一个整数值。名师资料总结 - - -精品资料

7、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - get()get() 函数比较灵活,有3种常用的重载形式:一种就是和put()对应的形式:ifstream&get(char &ch); 功能是从流中读取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如file2.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。另一种重载形式的原型是:int get();这种形式是从流中返回一个字符,如果到达文件尾,返回EOF,如x=f ile2.g

8、et();和上例功能是一样的。还有一种形式的原型是:ifstream&get(char *buf,intnum,chardelim=n) ;这种形式把字符读入由buf指向的数组,直到读入了num个字符或遇到了由delim指定的字符,如果没使用delim这个参数,将使用缺省值换行符n。例如:file2.get(str1,127,A);/从文件中读取字符到字符串str1,当遇到字符 A或读取了127个字符时终止。读写数据块要读写二进制数据块,使用成员函数read() 和write() 成员函数,它们原型如下:read(unsignedchar *buf,intnum);write(const un

9、signedchar*buf,intnum);read() 从文件中读取num个字符到buf指向的缓存中,如果在还未读入num个字符时就到了文件尾,可以用成员函数intgcount();来取得实际读取的字符数;而write() 从buf这种方式还有一种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些操纵符功能输入 / 输出dec格式化为十进制数值数据输入和输出endl输出一个换行符并刷新此流输出ends输出一个空字符输出hex格式化为十六进制数值数据输入和输出oct格式化为八进制数值数据输入和输出setpxec ision(intp) 设置浮点数的精度位数输出比如要把123当作十六进制输出:file1hex123; 要把3.1415926以5位精度输出: file1setpxecision(5)3.1415926。2、二进制文件的读写put()put() 函数向流写入一个字符,其原型是ofstream&put(charch) ,使用也比较简单,如file1.put(c); 就是向流写一个字符c。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁