C++程序设计(谭浩强完整版) - 输入输出流类库.ppt

C++程序设计(谭浩强完整版) - 输入输出流类库.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 输入函数: 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

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档