讲稿第7章输入输出流.ppt_第1页
讲稿第7章输入输出流.ppt_第2页
讲稿第7章输入输出流.ppt_第3页
讲稿第7章输入输出流.ppt_第4页
讲稿第7章输入输出流.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 面向对象程序设计 2 输入输出流 第7章 3 本章内容 7 1C 的输入和输出7 2标准输出流7 3标准输入流7 4文件操作与文件流7 5字符串流 4 目标 理解C 输入输出流及相关概念 理解标准输出流对象的使用及输出格式控制 理解标准输入流对象及输入流的成员函数的使用 理解文件概念 文件流与文件流对象的相关知识 理解二进制和文本文件的操作 5 第7章输入输出流 7 1C 的输入和输出7 2标准输出流7 3标准输入流7 4文件操作与文件流7 5字符串流 6 7 1C 的输入和输出 一 输入输出的含义 二 C 的I 0对C的发展 三 C 的输入输出流 7 7 1C 的输入和输出 一 输入输出的含义程序的输入是指从输入文件将数据传送给程序 输出是指将数据传送给输出文件 如 从键盘输入数据给程序 将程序运行结果显示在显示器上等 从操作系统的角度来看 每一个与主机相连的输入输出设备都被看作文件 文件是输入输出操作的对象 C 系统提供庞大的I O类库 调用不同的类去实现不同的功能 8 7 1C 的输入和输出 一 输入输出的含义C 的输入与输出包括以下3方面的内容 1 对系统指定的标准设备的输入和输出 称为标准的输入输出 简称标准I 0 2 以外存磁盘文件为对象进行输入和输出 称为文件的输入输出 简称文件I O 3 对内存中指定的空间进行输入和输出 称为字符串输出输出 简称串I O 9 7 1C 的输入和输出 二 C 的I O对C的发展类型安全C 为了兼容C 保留了用printf和scanf进行输出输入的方法 C 在输入输出中添加了 编译系统对数据类型的严格检查 类型不正确的数据不能通过编译 可扩展性C 的I O除了可以输入输出标准类型的数据以外 还可以输入输出用户自定义数据类型 10 7 1C 的输入和输出 三 C 的输入输出流C 的输入输出流简介 流 就是数据流 是字符序列在主机与外部介质之间的流动 它负责在数据的产生者和使用者之间建立联系 并管理数据的流动 具有方向性 内存 输出缓冲区 输入缓冲区 输出设备 形成cin流 数据 形成cout流 11 7 1C 的输入和输出 三 C 的输入输出流C 中 输入输出流被定义为类 称为流类 用流类定义的对象称为流对象 cin cout C 提供的用于输入输出的iostream类库存 查看P222表7 1 C 的流库 streamlibrary 是用继承方法建立起来的一个输入输出类库 查看P223图7 3 12 7 1C 的输入和输出 三 C 的输入输出流与iostream类库有关的头文件iostream 包含使用标准输入输出流所需的所有声明和定义 它包含四个标准流对象 cin cout cerr clog 提供了无格式和格式化的I O功能 fstream 包含有关文件处理的信息 提供建立文件和读写文件等各种操作的接口 strstream 用于字符串流的i o stdiostream 用于混合使用C和C 的I O机制 iomanip 在使用格式化I O时包含此头文件 13 7 1C 的输入和输出 三 C 的输入输出流在iostream头文件中定义的流对象 14 第7章输入输出流 7 1C 的输入和输出7 2标准输出流7 3标准输入流7 4文件操作与文件流7 5字符串流 15 7 4文件操作与文件流 一 文件的概念 二 文件流类和文件流对象 三 文件的打开与关闭 四 对ASCII文件的操作 五 对二进制文件的操作 16 7 4文件操作与文件流 一 文件的概念文件 指存储在外部介质上的数据集合 操作系统以文件为单位对数据进行管理 根据存储格式可以把文件分为两种类型 ASCII码文件 文本文件 内部格式文件 二进制文件 如 100文本 001100010011000000110000 3B二进制 01100100 1B 17 7 4文件操作与文件流 一 文件的概念 二 文件流类和文件流对象 三 文件的打开与关闭 四 对ASCII文件的操作 五 对二进制文件的操作 18 7 4文件操作与文件流 二 文件流类和文件流对象文件流 以外存文件为输入输出对象的数据流 文件流与文件是有区别的 文件流本身不是文件 只是以文件为输入输出对象的流 文件流不是若干个文件组成的流 C 对文件的读写操作包含3个基本步骤 建立一个文件流对象把文件流对象与实际文件相关联 称为打开文件 对文件流进行读 写操作 关闭文件 19 7 4文件操作与文件流 二 文件流类和文件流对象C 的I O类库中定义了三种文件类 专门用于文件操作 ifstream类 从istream类派生 用来支持磁盘文件的输入 ofstream类 从ostream类派生 用来支持磁盘文件的输出 fstream类 从iostream类派生 用来支持磁盘文件的输入和输出 20 7 4文件操作与文件流 一 文件的概念 二 文件流类和文件流对象 三 文件的打开与关闭 四 对ASCII文件的操作 五 对二进制文件的操作 21 7 4文件操作与文件流 三 文件的打开与关闭打开文件打开文件操作包括建立文件流对象 与外部文件关联 指定文件的打开方式 打开文件有两种方式 方式一 先建立流对象 后调用open连接外部文件 流类对象名 对象名 open 文件名 打开方式 方式二 调用流类带参数的构造函数 建立对象的同时连接外部文件 流类对象名 文件名 打开方式 22 7 4文件操作与文件流 三 文件的打开与关闭打开文件方式一 流类对象名 对象名 open 文件名 打开方式 方式二 流类对象名 文件名 打开方式 流类 是流类库中定义的文件流类 ifstream用于读方式打开文件 ofstream用于写方式打开文件 而fstream用于读 写方式打开文件 打开方式 是ios定义的标识常量 表示文件的访问方式 查看表7 7 用户定义标识符 外部文件名 23 7 4文件操作与文件流 三 文件的打开与关闭打开文件方式一 流类对象名 对象名 open 文件名 打开方式 方式二 流类对象名 文件名 打开方式 ifstreaminfile infile open d file1 txt ios in fstreamrwfile d file3 txt ios in ios out 24 7 4文件操作与文件流 三 文件的打开与关闭打开文件说明事项 新版本C 的I O类库中不提供ios nocreate和ios noreplace 每个打开的文件都有一个文件指针 它的初始位置由I O方式决定 可以用 位或运算符对输入输出方式进行组合 如果打开失败 open函数返回0值 可据此测试打开是否成功 25 7 4文件操作与文件流 三 文件的打开与关闭关闭文件当一个文件读写操作完毕后 应及时关闭文件 关闭文件操作主要完成将缓冲区数据完整地写入文件 添加文件结束标志 切断流对象和外部文件的连接等任务 关闭文件方式 对象名 close 例 26 7 4文件操作与文件流 include includeusingnamespacestd intmain ofstreamoutfile d f1 txt ios out if outfile cout 打开文件错误 endl outfile close return0 27 7 4文件操作与文件流 一 文件的概念 二 文件流类和文件流对象 三 文件的打开与关闭 四 对ASCII文件的操作 五 对二进制文件的操作 28 7 4文件操作与文件流 四 对ASCII文件的操作ASCII文件 文件的每一个字节中均以ASCII码形式存放数据 即一个字节存放一个字符 ASCII文件的读写操作有两种形式 用 输入输出标准类型的数据 用文件流中的put get getline等成员函数进行字符的输入输出 例 整形数组含3个元素 将他们存到文件中 并取出来 在屏幕上显示 29 7 4文件操作与文件流 一 文件的概念 二 文件流类和文件流对象 三 文件的打开与关闭 四 对ASCII文件的操作 五 对二进制文件的操作 30 7 4文件操作与文件流 五 对二进制文件的操作二进制文件 将内存中数据存储形式不加转换地传送到磁盘文件中 即以二进制形式存储信息 打开二进制文件时 必须要指定ios binary 用成员函数read和write读写二进制文件istream 指向内存中一段存储空间 读写的字节数 31 7 4文件操作与文件流 五 对二进制文件的操作例 将三个学生的信息存到二进制文件中 学生定义如下 structstudent charname 20 intnum intage charsex 32 7 4文件操作与文件流 五 对二进制文件的操作与文件指针相关的流成员函数 P254表7 7 文件指针相对移动函数移动读指针 seekg 移动写指针 seekp 33 练习 例7 13从键盘中读入一行字符 将其中的字母字符依次存入f2 dat中 再将文件中的内容读入程序 将小写字母改成大写字母 存入f3 dat中 思考 何种文件形式 阅读分析例7 16 34 实验十一文件操作 实验内容 课后第5题实验时间 周五三单元实验报告 十六周周二一单元上交 35 小结 一 文件的概念 二 文件流类和文件流对象 三 文件的打开与关闭 四 对ASCII文件的操作 五 对二进制文件的操作 36 7 4文件操作与文件流 五 对二进制文件的操作与文件指针相关的流成员函数参照位置 ios cur当前位置ios end结尾ios beg开头例 infile seekg 100 infile seekg 50 ios cur Outfile seekg 10 ios beg 37 第7章输入输出流 7 1C 的输入和输出7 2标准输出流7 3标准输入流7 4文件操作与文件流7 5字符串流 38 7 2标准输出流 一 cout cerr clog流对象cout它是ostream流类的对象 表示流向显示器的数据 用流插入运算符 顺序加入 用 cout 可以直接输出基本类型数据 例 inta b cout a b 如果想输出用户定义数据类型 必须先进行运算符的重载 例 定义complex类 实现该对象的输出 complexc1 cout c1 ostream 39 7 2标准输出流 一 cout cerr clog流对象cerr 是标准出错流 被指定为与显示器关联 它的作用是向标准出错设备输出有关出错信息 例 查看P227例7 1 clog 是标准出错流 作用也是在终端显示器上显示出错信息 cerr与clog的区别 cerr不经过缓冲区 直接向显示器输出有关信息 clog中的信息存放在缓冲区中 缓冲区满或遇到endl时才向显示器输出 40 7 2标准输出流 二 格式输出使用控制符控制输出格式 查看P228表7 3 cout dec a endl 例 查看P228例7 2 用流对象的成员函数控制输出格式 查看P229表7 4 cout width 10 例 查看P230例7 3 41 7 2标准输出流 三 用流成员函数put输出字符put 专门用于输出单个字符的成员函数 例如 cout put a 可以在一个语句中连续调用put函数 例 查看P232例7 4 putchar函数 C语言中使用的 也能输出一个字符 在stdio h头文件中定义 42 第7章输入输出流 7 1C 的输入和输出7 2标准输出流7 3标准输入流7 4文件操作与文件流7 5字符串流 43 7 3标准输入流 一 cin流cin是istream类的对象 它从标准输入设备 键盘 获取数据 程序中的变量通过流提取符 从流中提取数据 流提取符 从流中提取数据时通常跳过输入流中的空格 Tab键 换行符等空白字符 只有输入完数据再按回车健后 该行数据才被送入键盘缓冲区 形成输入流 流提取符 才能从中提取数据 44 一 cin流 补充 Cin有自己状态值 错误时为0例Inta cin a a ssdlk处理 cin clear 清除错误标志cin sync 清空缓存 45 7 3标准输入流 二 用于字符输入的流成员函数用get函数读入一个字符 get函数有三种形式 cin get cin get 字符变量 作用 将读入字符赋值给指定的字符变量 cin get 字符数组 字符个数n 终止字符 作用 从输入流中读取n 1个字符 赋给指定的字符数组 如果在读取n 1个字符前遇到终止字符 则提前结束读取 46 7 3标准输入流 二 用于字符输入的流成员函数用get函数的例题 第一种形式 includeusingnamespacestd intmain charc cout enterasentence endl while c cin get EOF 输入ctrl z结束cout put c return0 47 7 3标准输入流 二 用于字符输入的流成员函数用get函数的例题 第二种形式 includeusingnamespacestd intmain charc cout enterasentence endl while cin get c 输入ctrl z结束co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论