- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计(谭浩强完整版)的-输入输出流类库
* 输入函数: infile.read( char *, int ) 输入文件对象名 数据进入的内存地址 一次读入的字节数 文件 内存 int a[10]; infile.read((char *)a, 10*sizeof(int));//从文件中输入十个整型数到a int i; infile.read((char *)i, sizeof(int));//从文件中输入一个整型数到i 由于二进制文件中的数据不是ASCII码,故不能直接对其读写,必须要通过特定的函数予以转换。 读入 地址要强制转换成字符型 * 输出函数: outfile.write( char *, int ) 输出文件对象名 要输出的数据在内存中的地址 一次输出的字节数 文件 内存 int a[10]={0,1,2,3,4,5,6,7,8,9}; outfile.write((char *)a, 10*sizeof(int));//向文件输出一个整型数组a int i=4; outfile.write((char *)i, sizeof(int));//向文件输出一个整型数i 写出 地址要强制转换成字符型 * 判断二进制文件是否读到文件尾? infile.eof( ) 当到达文件结束位置时,该函数返回一个非零值;否则返回零。 fstream infile; infile.open(“data1.dat”,ios::in|ios::binary); if(!infile) { cout“Open Error!\n”; exit(1); } char str[300]; while(!infile.eof()) infile.read(str, 300); 判断打开是否出错 判断是否读到文件尾 * void main(void ) {char filename1[256],filename2[256]; char buff[4096]; cout ”输入源文件名:”; cin filename1; cout ”输入目的文件名:”; cin filename2; fstream infile,outfile; infile.open(filename1,ios::in | ios::binary); outfile.open(filename2,ios::out | ios::binary); int n; while (!infile.eof()){ //文件不结束,继续循环 infile.read(buff,4096); //一次读4096个字节 n=infile.gcount(); //取实际读的字节数 outfile.write(buff,n); //按实际读的字节数写入文件 } infile.close(); outfile.close(); } * 文件指针 文件内容 文件指针 当一打开文件,文件指针位于文件头,并随着读写字节数的多少顺序移动。 可以利用成员函数随机移动文件指针。 * 随机读取二进制文件 infile.seekg(int);//将文件指针移动到由参数指定的字节处 infile.seekg(100);//将文件指针移动到距离文件头100个字节处 infile.seekg(int, ios::_dir); 移动的字节数 相对位置 infile.seekg(100, ios::beg);//移动到距文件头100个字节 _dir: beg: 文件头 cur: 当前位置 end: 文件尾 infile.seekg(-100, ios::cur);//移动到距当前位置前100个字节 infile.seekg(-500, ios::end);//移动到距文件尾前500个字节 * void main(void ) { ofstream outfile(“data1.dat”,ios::out| ios::binary); int i; for(i=5;i 1000;i+=2 ) outfile.write((char*)i,sizeof(int)); //将奇数写入文件 outfile.close();//关闭文件 ifstream f1(“data.dat”,ios::in| ios::binary); int x; f1.seekg(20*sizeof(int));//将文件指针移到第20个整数的位置 for(i=0;i10;i++) {f1.read((char *)x,sizeof(int)); //依次读出第20~29个奇数到x
您可能关注的文档
- AX的I4-协议规范.ppt
- Avaya视的频会议方案.pptx
- A的B_PLC_程序基础.ppt
- A的MBAAXI4协议.ppt
- a的ndroid进程间通信.ppt
- A的D-DA扩展.ppt
- A的MS故障诊断与维护.ppt
- A的RM-汇编的基础指令.pdf
- A的SM06 子程序结构.ppt
- a的spnet超市管理系统.doc
- 【暑期阅读周计划-B版】四年级 第四单元 动物朋友(共8页,PDF版).docx
- 第10课《竹节人》阅读理解题(含答案+解析).docx
- 13湖心亭看雪 同步练习(含答案).docx
- 八年级下学期期末考试语文试题(图片版,含答案)_5.docx
- 才源求真中学七年级下学期期末语文试题(pdf版含答案).docx
- 2024中考(语文)真题抢先练 作文部分(山东).docx
- 第三单元 11 短文二篇 课时练习(含答案)语文部编版八年级上册.docx
- 26 诗词五首—八年级语文人教部编版上册课时优化训练(含解析).docx
- 【试卷】统编版一年级(下)语文第八单元考试试卷(基础卷)【含答案】.docx
- 九年级下册 第三单元 11 送东阳马生序 课时练习(含答案 解析).docx
文档评论(0)