网站大量收购闲置独家精品文档,联系QQ:2885784924

C++快速入门系列 第四讲 从另一个小程序接着说.pptVIP

C++快速入门系列 第四讲 从另一个小程序接着说.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++快速入门 作者:小甲鱼 文件 I/O 前边我们已经给大家简单介绍和演示过 C 和 C++在终端 I/O 处理上的异同点。 现在我们接着来研究文件 I/O。 编程任务:编写一个文件复制程序,功能实现将一个文件复制到另一个文件。 例如:fileCopy sourceFile destFile C语言版实例分析:fileCopy.c 重点分析 argc 与 argv[] 在程序中,main 函数有两个参数,整型变量 argc 和字符指针数组 argv[]。 argc 的含义是程序的参数数量,包含本身。 argv[] 的每个指针指向命令行的一个字符串,所以argv[0] 指向字符串copyFile.exe。argv[1] 指向字符串sourceFile,argv[2] 指向字符串destFile。 重点分析 in 和 out 是我们声明的两个文件指针,它们的类型都是 FILE*,分别作为两个 I/O 流对象使用。 if( argc != 3 ) 是为了确保程序参数个数的正确性。 通过 fopen() 函数我们以二进制的形式按可读/可写方式打开两个文件并返回两个文件指针给 in 和 out。 为了确保文件成功打开,我们还对 fopen()的返回值进行了检查,如果为成功打开,我们就向标准错误流 stderr 发送一条消息。 重点分析 getc() 函数一次从输入流(stdin) 读取一个字符,putc() 函数把这个字符写入到输出流(stdout)。 当getc() 遇到文件结束标志的时候,函数就返回 EOF。EOF 是一个宏,在stdio.h中定义,其值为一个负整数,通常是 -1。 EOF 事实上有两个含义:MSDN 注意细节,getc() 的返回值是 int 类型哦,所以我们声明时应该是 int ch。而不是char ch。 C++的文件操作 由于我们这个C++ 的版本相对有点不同,对类和对象的应用比较多和烦,但是由于我们现在还没开始讲解类和对象,所以大家现在尽管“先用”,暂时可以不求甚解!等到实际学了类和对象,大家回过头来看,就明白了一切!有些朋友可能会问:为什么不先把类和对象讲清楚呢? 我们依旧老规矩,以实例为主,以事实说话: 例子一:example1.cpp C++的文件操作 从刚刚的例题我们得到的信息是C++ 由于有类的封装,很多东西都变得更加“仔细”了! 上边的例题我们用到的是文件的读取类 ifream。 接着我们结合例题来说说文件的写入要用到的类 ofream。 例题二:example2.cpp C++的文件操作 在前边两个例子中我们出现: ifstream in; in.open( test.txt ); 和 ofstream out; out.open( test.txt ); 它们都是用一个open 函数来完成打开文件的功能。当然,这不是唯一的方法,我们还可以这样实现。 C++的文件操作 ifstream in( test.txt ); 和 ofstream out( test.txt ); 请大家自行体验。 以上代码在创建一个ifstream 和ofstream 类的对象时,将文件的名字传递给它们的构造函数。 暂时我们可以这么理解构造函数:就是对象默认使用的函数(方法)。 C++的文件操作 那么这两种方法有什么区别吗?结论是没有区别! 事实上它还可以接受不止一个参数! 下边我们给出一个接受两个参数的实例: ifstream in( char* filename, int open_mode) 其中,filename 表示文件的名称,它是一个字符串; open_mode 表示打开模式,其值用来定义以怎样的方式打开文件(跟open的参数一样哈)。 C++的文件操作 下面给出几种常见的打开模式: ios::in -- 打开一个可读取文件 ios::out -- 打开一个可写入文件 ios::binary -- 以二进制的形式打开一个文件。 ios::app -- 写入的所有数据将被追加到文件的末尾 ios::trunk -- 删除文件原来已存在的内容 ios::nocreate -- 如果要打开的文件并不存在,那么以此参数调用open 函数将无法进行。 ios::noreplece -- 如果要打开的文件已存在,试图用open 函数打开时将返回一个错误。 C++的文件操作 下边我们给出一个关于如何使用打开模式的例子。 例子三:example3.cpp 那有些同学或许会问了,如果我需要的不只是一种打开模式,要多种并存怎么办呢? 我们只需要使用 OR 操作符:“|” 例子四:example4.cpp 课后作业 到了这里,fileCopy.cpp 这个程序应该由大家来编写了,不难吧?! ~O

文档评论(0)

ldj215323 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档