版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、【转载】C+中文件流(fstream)的使用方法及示例(2011-08-22 16:00:14) 转载标签:杂 分类:编程拾萃谈C+文件流:fstream/文件流ifstream/输入文件流ofstream/输出文件流头文件:#in elude <fstream>/创建一个文本文件并写入信息/同向屏幕上输出信息一样将信息输出至文件#i ncludevioma nip.h>#in clude<fstream>void mai n()/打/打开文/ofstream ofs("C:example.txt");开文件用于写,若文件不存在就创建它if (
2、!ofs) return;件失败则结束运行f1 << setw(20) << "Name: " << "Beethove n" << endl;使用插入运算符写文件内容fl << setw(20) << "so ng: " << "Moo nlight Son ata" << endl;f1.close();II 关闭文件文件操作:打开文件文件名注意路径名中的斜杠要双写,如:"D:MyFilesReadMe.t
3、xt"文件打开方式选项:ios:in= 0x01, II供读,文件不存在则创建(ifstream 默认的打开方式)ios:out= 0x02, II供写,文件不存在则创 建,若文件已存在则清空原内容(ofstream默认的打开方式)ios:ate= 0x04, II文件打开时,指针在文件最后。可改变指针的位置,常和in、out联合使用ios:app= 0x08, II供写,文件不存在则创建,若文件已存在则在原文件内容后写入新的内容,指针位置总在最后ios:trunc= 0x10, II在读写前先将文件长度截断为0 (默认)ios: no create=0x20, II文件不存在时产生
4、错误,常和in或app联合使用ios: no replace= 0x40,/文件存在时产生错误,常和out联合使ios:b inary=0x80/二进制格式文件文件保护方式选择项:filebuf:ope nprot;默认的兼容共享方式filebuf:sh_ none;/独占,不共享filebuf:sh_read;/读共享filebuf:sh_write;/写共享打开文件的方法调用构造函数时指定文件名和打开模式ifstream f("d:12.txt", ios: no create);默认以ios:in的方式打开文件,文件不存在时操作失败ofstream f("d
5、:12.txt");默认以ios:out 的方式打开文件fstream f("d:12.dat",ios:i n| ios:out|ios:bi nary);/以读写方式打开二进制文件使用Open成员函数fstream f;f.ope n( "d:12.txt",ios:out);/利用同一对象对多个文件进行操作时要用到open函数检查是否成功打开成功:if (f) ./ 对 ifstream、ofstream 对象可用,fstream对象不可用。mysqlif (f.good() .失败:if (!f) ./ !运算符已经重载if (f.fa
6、il() .读写操作使用<<, >>运算符只能进行文本文件的读写操作,用于二进制文件可能会产生错误。使用函数成员 get、put、read、write 等经常和read配合使用的函数是gcount(),用来获得实际读取的字节 数。读写二进制文件注意事项打开方式中必须指定ios:b in ary,否则读写会出错用read'write进行读写操作,而不能使用插入、提取运算符进行操作,否则会出错。使用eof()函数检测文件是否读结束,使用gcount()获得实际读取的 字节数 关闭文件使用成员函数close,女口: oraclef.close();利用析构函数对象生命
7、期结束时会检查文件是否关闭,对没有关闭的文件进行关 闭操作。随机读写文件通过移动文件读写指针,可在文件指定位置进行读写。seekg(绝对位置);seekg(相对位置,参照位置);tellg();seekp(绝对位置);seekp(相对位置,参照位置);tellp();参照位置:mysqlios:beg= 0ios:cur= 1ios:e nd= 2读写文本文件的示例/绝对移动,/输入流操作/相对操作/返回当前指针位置/绝对移动,/输出流操作/相对操作/返回当前指针位置/相对于文件头/相对于当前位置/相对于文件尾/为能够正确读出写入文件的各数据,各数据间最好要有分隔#in clude<fs
8、tream>void mai n() fstream f("d:try.txt", ios:out);f << 1234 << ' ' << 3.14 << 'A' << "How are you"/ 写入数据f.close();f.ope n("d:try.txt", ios:i n);int i;double d;char c;char s20;f >> i >> d >> c;/ 读取数据f.ge
9、tli ne(s,20);cout << i << endl;/ 显示各数据cout <<d << en dl;cout << c << en dl;cout << s << en dl;f.close();运行结果:12343.14AHow are youPress any key to con ti nue显示文本文件的内容/使用get() 次读一个字符 案一#in clude<fstream> void mai n()简介.txt", ios: no create);if
10、 (!fin) cout << "File ope n error!' n"return;char c;while (c=fin.get() != EOF) cout << c;/ 注意结束条件的判断fin .close();/ 使用 get(char *,int n,char delim='n')一次读多个字符-方案二/巧妙利用文本文件中不会有字符'0'的特点进行读取 #in clude<fstream> void mai n()简介.txt",ios: no create); if(!
11、fi n) cout«"File ope n error!' n"return;char c80;/注意结束条件的判while(fi n.get(c,80,'0')!=NULL)cout<<c;断fin .close();/ 使用 read(char *,int n)读文件案三#in clude<fstream.h>void mai n()简介.txt",ios: no create); if(!fi n) cout<<"File ope n error!n"return;char c80;while(!fi n. eof()/判断文件是否读结fin .read(c,80);cout.write(c,fi n. gco un t();fin .close();拷贝文件/二进制文件操作示例ssh#in clude<fstream>void mai n()ifstream fin ("C:1.exe", ios: no create|ios:b in ary);if (!fin) cout << "File ope n error!' n"return;ofstream f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抚养权子女抚养权离婚抚养协议
- 代收赛事转播权使用费协议书
- 江苏省徐州市和集中学高一数学文模拟试题含解析
- 北京和平北路学校 高一数学文上学期期末试卷含解析
- 北京丰台区东高地第一中学高一数学文上学期摸底试题含解析
- 山西省忻州市原平铁路中学高一英语摸底试卷含解析
- 重庆白市驿职业中学高三数学理上学期期末试卷含解析
- 安徽省六安市大顾店中学2022-2023学年高一数学文联考试题含解析
- 2022-2023学年湖南省长沙市沙田乡五里堆中学高一数学文下学期摸底试题含解析
- 湖北省荆门市警源第一中学高一英语上学期期末试卷含解析
- 家长会上家长代表发言稿参考范文丨作为家长要理解、支持和配合老师共同教育孩子
- 泌尿外科学科发展方向
- 中医住院医师规范化培训基地工作指南
- 项目法人质量管理体系
- 工程管理部对标学习先进经验做法方案
- 江苏建筑施工特种作业(建筑电工)实操考核记录表
- 反比例函数练习题及答案(经典实用)
- 办公家具管理制度
- 竹取物语原版
- 检验科生物安全自查报告
- 自闭症评定量表(最新版pep3)
评论
0/150
提交评论