第10章 I的O流与文件.ppt

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

第10章 I/O流与文件 主要内容 I/O的基本概念 标准I/O流cin和cout 文本文件I/O 二进制文件I/O 1、概述 1、概述(续) 应用程序、操作系统与I/O 在现代通用计算机的架构中,I/O指令属于特权指令,只能由操作系统发出,不能由用户程序发出 用户程序要进行I/O必须利用操作系统提供的接口----系统调用(system calls) 系统调用接口的层次太低,用户程序直接使用系统调用会过于复杂且不方便,所以高级程序语言都提供更高层次的I/O机制 在C++中,流类就是用于进行I/O操作的高级机制 2、标准I/O流cin和cout cin someInt someFloat someChar; //假设键入13 3.14 9回车 2、标准I/O流cin和cout(续) cin中每个字符都是“平等”的,按先后顺序等待着每个消耗掉前面的一些字符 每个代表一次输入,且多次输入可以连续进行(构成一条语句)。每次输入在碰到空白符或碰到第一个无法接收的字符时结束;整个输入语句在键入了回车且已键入的数据足以满足所有输入时结束 操作符以空白符作为数据项的间隔符 整型变量可以接收’0’~’9’这10个字符;浮点型变量除了可以接收这10个字符外,还可以接收’.’;字符型变量则会接收非空白空间字符 2、标准I/O流cin和cout cout “The answer is: ” someInt*someFloat; 注意 随着GUI的普及,这种输入和输出方式的重要性已经不断下降,所以我们不探讨一些过于细致的问题。掌握基本的用法即可 3、文本文件I/O 例: 准备一个纯文本文件data.txt,与程序源文件fileIO.cpp保存在相同的文件夹中 然后编写一程序,把这个文件的内容读入到一个int变量、一个double变量和一个char变量中 计算前两者之积,然后把结果输出到文件result.txt中保存起来 3、文本文件流----例子1 注意 open操作用于将I/O文件流与对应的文件关联起来 对于输入文件流,若对应的文件不存在,则open操作不成功 对于输出文件流,若对应的文件不存在,则自动建立该文件;若对应的文件已存在,则自动清空文件的内容;若磁盘已满或写保护等,则open操作不成功 若open操作不成功,则流对象进入失效状态(流对象对应的逻辑值为false),后续I/O操作将无效,但程序不会被挂起,也不会有任何错误提示 3、文本文件I/O(续) 例: 编一程序copy,将纯文本文件1.txt的内容复制到另一纯文本文件2.txt中 3、文本文件流----例子2 4、二进制文件I/O 4、二进制文件I/O(续) 文本文件I/O Vs. 二进制文件I/O 文本文件输出,需要先将输出值转化为字符序列,然后存储到文件中的内容是这些字符相应的ASCII码。文本文件输入,也需要先将字符序列转化为相应的数值,然后再进入变量中 二进制文件输出,是直接将内存数值(即其二进制形式)输出到文件中保存。因此得到二进制文件,且其内容与内存的形式一样。二进制文件输入,也是直接将文件内容输入到内存中即可,无需转化过程 4、二进制文件I/O(续) 利用ifstream进行二进制文件输入 nMode的取值: ios::in???打开文件以便输入(默认) ios::nocreate???若文件不存在,则打开文件失败 ios::binary???按二进制模式打开文件(默认为文本模式) 可用位操作符|表示这些枚举常量的组合 nProt(文件保护说明)的取值: filebuf::sh_compat???兼容共享模式。等价于filebuf::openprot filebuf::sh_none???不共享 filebuf::sh_read???允许读共享 filebuf::sh_write???允许写共享 可用逻辑操作符||组合filebuf::sh_read和filebuf::sh_write 模式 4、二进制文件I/O(续) 4、二进制文件I/O(续) 利用ofstream进行二进制文件输出 nProt的取值: 同ifstream的open操作 4、二进制文件I/O(续) 利用ofstream进行二进制文件输出(续) nMode的取值 ios::app???将所有输出写入文件末尾(即使使用了seekp操作也一样) ios::ate??? 打开文件以便输出,并将写指针移到文件末尾。数据可以写入文件中的任何地方。 ios::in?? 若文件存在,则内容不被清空(该文件用于输出) ios::out???打开文件以便输出(默认) ios::trunc??若文件已存在,则删除文件现有内容

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档