与文件指针有关的流类成员函数 为了随机读取二进制文件中数据,磁盘文件用一个指针表示当前要访问的位置。 每次读或写文件后会自动修改指针。使指针总是指向当前要访问的位置。 对于二进制文件,允许程序控制指针移动,实现随机访问文件。文件流类提供了有关文件指针的成员函数。 表7.7列出这些函数。 * 与文件指针有关的流类成员函数 这些函数名头或尾字母不是g就是p。 带g的用于输入,带p的用于输出。 对于输入输出文件不区分g和p。 函数参数文件中的位置和位移量以字节为单位,是长整型。 * 与文件指针有关的流类成员函数 参照位置表示以什么作为移动起点。ios类定义为: ios::beg 以文件开始为起点,这是默认值。 ios::cur 以指针当前位置为起点。 ios::end 以文件结尾为起点。 例: infile.seekg( 100 ); infile.seekg( -50,ios::cur); outfile.seekp( -75,ios::end); * 与文件指针有关的流类成员函数 随机访问二进制数据文件 利用流类的成员函数移动文件指针,实现随机访问文件中任何一个字节里的数据。 例:有五个学生的数据,要求: 把它们写入磁盘文件 从磁盘文件读第1,3,5学生数据并显示 修改第3 个学生的数据并保存到原来位置 从磁盘文件读入修改过的5个学生数据并显示 * 与文件指针有关的流类成员函数 struct student { int num; char name[20]; float score;}; int main() {int i; student stud[5]={1001,“Li”,85,1002,“Fun”,97.5, 1004, Wang”,54, 1006,Tan,76.5,1010,ling,96}; fstream iofile(stud.dat,ios::in|ios::out|ios::binary); if(!iofile) {cerropen error!endl; abort(); } * 与文件指针有关的流类成员函数 for(i=0;i5;i++) iofile.write((char *)stud[i],sizeof(stud[i])); student stud1[5]; for(i=0;i5;i=i+2) {iofile.seekg(i*sizeof(stud[i]),ios::beg); iofile.read((char *)stud1[i/2],sizeof(stud1[i])); coutstud1[i/2].num“ ”stud1[i/2].name“ ”stud1[i/2].scoreendl; } coutendl; stud[2].num=1012; strcpy(stud[2].name,Wu); stud[2].score=60; * 与文件指针有关的流类成员函数 iofile.seekp(2*sizeof(stud[0]),ios::beg); iofile.write((char *)stud[2],sizeof(stud[2])); iofile.seekg(0,ios::beg); for(i=0;i5;i++) {iofile.read((char *)stud[i],sizeof(stud[i])); coutstud[i].num stud[i].name stud[i].scoreendl; } iofile.close(); return 0; } * 与文件指针有关的流类成员函数 * 提纲 C++的输入和输出 标准输出流 标准输入流 文件操作与文件流 字符串流 * 字符串流 字符串流以内存中用户定义的字符数组(字符串)为输入输出对象,即将数据写入内存数组,或从内存字符数组读取数据。 字符串流也需要缓冲区,读取或写入时,流缓冲区中的数据不断增加,待缓冲区满或遇到换行符时,缓冲区中数据一起写入字符数组或赋予指定变量。 * 建立写字符串流对象 ostrstream类的构造函数原型是 ostrstream::ostrstream( char *bu, int n, int mode =ios::out); bu是指向字符数组首址的指针,n是指定流缓冲区的长度,第三个参数可省略,默认是ios::out。 例:ostrstream strout( ch1,20); 建立字符流对象strout,并与字符数组ch1关联(通过字符串流把数据写入字符数
您可能关注的文档
- 第七、八章陶瓷材料解析.ppt
- 第七、第八章泌尿生殖系统.(修改)解析.ppt
- 第二章第一节金属切削基础解析.ppt
- 第七八单元习作珍惜过去解析.docx
- 第七版D62几何应用解析.ppt
- 第二章第一节食物中的营养物质(人教版七年级下册)解析.ppt
- 第二章第一节食物中的营养物质解析.ppt
- 第七次实验2解析.ppt
- 第七单元 第一章 第三节 两栖动物的生殖和发育解析.ppt
- 第七单元——第二章真核微生物(一)解析.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 2026年妇幼健康信息化建设工作计划.docx VIP
- TSG 11-2020锅炉安全技术规程.docx VIP
- 《AIGC应用实战:写作、绘图、视频制作、直播》-课件全套 王翎子 第1--9章 认识AIGC ---即创的使用方法.pptx VIP
- 隧道施工及质量控制培训课件.ppt VIP
- 江苏省无锡市近三年数学中考考前考点分析及易错点巩固.docx VIP
- 公司职位说明书与绩效考核范本全套体系.doc VIP
- 建筑公司项目部及公司各岗位绩效考核表.pdf VIP
- 窗帘采购安装项目 投标方案(技术方案).docx
- JCT 2459-2018 陶粒泡沫混凝土.pdf VIP
- 配电室安全操作规程及管理规范.docx VIP
原创力文档

文档评论(0)