- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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??若文件已存在,则删除文件现有内容
您可能关注的文档
- 高三备考思考化学讲解.ppt
- 第2章计算机系统的组成及典型讲解.ppt
- 高三第一轮复习政治生活第六课讲解.ppt
- 高三第一轮复习专题直线与圆锥曲线的综合问题讲解.ppt
- 高三化学工艺流程题解题技巧点拨讲解.doc
- 高三历史综合练习十讲解.docx
- 第03章_机器人运动学讲解.ppt
- 高三生物基础知识大检查(310问)讲解.doc
- 高三数学双曲线复习讲解.doc
- 第2章牛顿定律讲解.ppt
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
最近下载
- 二年级家长会班主任发言稿 VIP
- 2023-2024学年上海市位育中学八年级上学期期中考试英语试卷含详解.docx VIP
- 【自做】白雪公主PPT正常版.ppt
- 名著阅读《群英会蒋干中计》课件精品课件(选自罗贯中《三国演义》;34页).pptx VIP
- 2023-2024学年北京某中学八年级上学期期中考试英语试卷(含详解).pdf VIP
- 手术患者意外伤害预防.pptx
- 2024年初中信息技术学业水平合格性考试题库含答案.pdf
- 2024-2025学年小学科学一年级上册(2024)教科版(2024)教学设计合集.docx
- 2024全国中考语文试题分类汇编:记叙文阅读.pdf VIP
- 英语国家概况100问及答案.doc
文档评论(0)