- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
又例如,实现任意名称文件复制的程序如下: #includeiostream.h #includeprocess.h// 为了使用exit() #includefstream.h void main(int argc,char *argv[]) { char ch; if(argc!=3) { cerr″USAGE:dcopy file1 file2\n″; exit(-1); } ifstream source; ofstream dest; source.open( argv[1],ios∷nocreate ); // 源文件必须已经存在 if(!source){ cerr″can not open source file″ argv[1]″\n″; exit(-1); } dest.open(argv[2]); if(!dest) { cerr″can not open destination file″argv[2]″\n″;exit(-1); } while(source.get(ch)) dest.put(ch); cout″DCOPY completed !\n″; source.close(); dest.close(); } 假设本程序存在文件dcopy.cpp中,经编译、连接后得到可执行文件dcopy.exe,执行它时应该键入如下命令: c:dcopy file1 file2 2.二进制文件的读写 二进制文件不是以ASCII代码存放数据的,它将内存中数据存储形式不加转换地传送到磁盘文件,因此它又称为内存数据的映像文件。 对二进制文件的读写主要用istream类的成员函数read和ostream类的成员函数write来实现的。这两个函数的原型如下: istream read(char *buffer,int len); ostream write(const char *buffer,int len); read是流类istream中的成员函数,其功能为:从相应的流中读取len个字节,并把它们放入指针buffer所指向的缓冲区中。该函数有两个参数: 第一个参数buffer是一个指针,它是读入数据的存放地址(起始地址);第二个参数len是一个整数值,它是要读入的数据的字节数。 调用格式为:read(缓冲区首址,读入的字节数),其中,“缓冲区首址”的数据类型为char *,当输入其他类型数据时,必须进行类型转换。 write是流类ostream的成员函数,利用该函数,可以从buffer所指的缓冲区把len个字节写到相应的流上。参数的含义及调用注意事项与read函数类似。 例exam12-9 将1~1000之间的所有素数以二进制形式存放在磁盘文件Prime.dat中。 #include fstream #include iostream #include cmath using namespace std; int main() { fstream table; table.open(Prime.dat,ios::binary|ios::out); if(! table) { coutCannot open output file!\n; return 1; } int i,k; for (i=2;i=1000;i++) { for (k=2;k=sqrt(i);k++) if (i%k==0) break; if ( ksqrt(i) ) table.write((char *) i, sizeof(i)); //缓冲区首址: i 语句作用:将i写入table中 } table.close(); return 0; } 例exam12-10 将例exam12-9 得到的Prime.dat中的数据读入内存并在显示器上显示。 #include fstream #include iostream #include iomanip using namespace std; int main() { fstream table; table.open(Prime.dat,ios::binary|ios::in); if(! table) { coutCannot open input file!\n;
您可能关注的文档
最近下载
- 七上历史早背晚默小纸条.pdf VIP
- 《住院患者身体约束的护理》团体标准解读.pptx VIP
- 安装施工员工作职责内容(32篇).docx VIP
- 气凝胶隔热保温纳米涂料-气凝胶基础材料项目可行性研究报告.doc VIP
- 中心学校校园安全治本攻坚三年行动实施方案(2024-2026).pdf VIP
- 电动升降式高杆灯安装使用说明书.doc VIP
- GB50257-2014 电气装置安装工程 爆炸和火灾危险环境电气装置施工及验收规范.pdf VIP
- 【备战25年高考数学】解答题06 10类导数答题模板(原卷版) (2).docx VIP
- 《思想道德与法治》课件——专题6 遵守道德规范 锤炼道德品格.pptx VIP
- 【备战25年高考数学】解答题01 7类解三角形答题模板(解析版).docx VIP
文档评论(0)