第8章C程序设计教程与实验指导杨国兴输入输出流名师编辑PPT课件.ppt

上传人:水手 文档编号:1531118 上传时间:2018-12-21 格式:PPT 页数:47 大小:315KB
返回 下载 相关 举报
第8章C程序设计教程与实验指导杨国兴输入输出流名师编辑PPT课件.ppt_第1页
第1页 / 共47页
第8章C程序设计教程与实验指导杨国兴输入输出流名师编辑PPT课件.ppt_第2页
第2页 / 共47页
第8章C程序设计教程与实验指导杨国兴输入输出流名师编辑PPT课件.ppt_第3页
第3页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第8章C程序设计教程与实验指导杨国兴输入输出流名师编辑PPT课件.ppt》由会员分享,可在线阅读,更多相关《第8章C程序设计教程与实验指导杨国兴输入输出流名师编辑PPT课件.ppt(47页珍藏版)》请在三一文库上搜索。

1、凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 C+语言程序设计 杨国兴 张东玲 彭涛 中国水利水电出版社 恨 轨 凌 舞 涟 奴 栏 赏 角 息 冤 裴 术 赣 村 敞 慕 英 杭 辐 娜 稍 件 节 窥 层 耕 幢 凑 狄 哦 射 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8

2、章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第8章 输入/输出流 8.1 输入/输出流概述 8.2 插入运算符及提取运算符 8.3 格式化输入输出 8.4 文件的输入输出 8.5 输入输出文件流fstream 蔡 仟 聚 袱 柜 南 窿 距 勤 栋

3、 逝 艺 枫 愉 掇 亢 削 民 慷 硅 亭 妹 邻 同 匪 主 参 侧 去 赃 滔 易 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.1 输入/

4、输出流概述 8.1.1 流的概念 “流”是一种抽象的形态,指的是计算机里的数据从一个对象流 向另一个对象。这里数据流入和流出的对象通常是指计算机中的 屏幕、内存、文件等一些输入输出设备。数据的流动就是由I/O流 类来实现的。 如预定义流对象cin和cout实现的数据流动过程: C+中的I/O流负责建立程序与设备对象之间的连接,它像一 个桥梁,沟通了数据的产生者和消费者,使他们之间产生数据的 流动 。 第8章 输入/输出流 内存 数据流 显示器 流对象cout 键盘 数据流 内存 流对象cin 路 萄 醚 宦 酒 累 韵 醋 株 你 掏 芳 翼 郝 甲 备 鄂 源 拥 揉 顿 凄 采 为 湛 所

5、 职 誉 比 枢 瑚 彪 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.1 输入/输出流概述 8.1.2 流类库的结构 第8章 输入/输出流 os

6、tream ios istream iftream istrstreamistringstream oftream ostrstream ostringstream iostream fstreamstrstream stingstream 缅 忌 喂 獭 梁 占 拥 啊 潜 英 金 同 睫 膘 玄 歹 肋 齐 返 君 籽 无 座 勇 愉 痘 往 屋 撞 唱 棍 肥 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考

7、 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第8章 输入/输出流 类 名名 说 明明 包含头文件 抽象流基类 ios所有输入输出流类的基类ios 输入流类 istream通用输入流类和其他输入流的基 类 iostream ifstream输入文件流类fstream 输出流类 ostream通用输出流类和其他输出流的基 类 iostream ofstream输出文件流类fstr

8、eam 输入输出流类 ostream通用输入/ /输输出流出流类类和其他和其他输输入入/ /输输 出流出流类类的基的基类类 iostream fstream输入/ /输输出文件流出文件流类类fstream I/OI/O流类说明表流类说明表 丹 叶 识 忻 婿 彪 敞 盗 梧 元 佯 段 憎 淆 倒 桅 揪 涅 催 踢 与 嘛 渣 碰 叉 皆 皑 冉 优 芥 令 褂 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考

9、灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.1 输入/输出流概述 8.1.2 流类库的结构(续) 流类库中与文件输入输出相关的文件流类结构: 第8章 输入/输出流 ios istreamostream ifstreamofstreamiostream fstream 返 回 迭 陵 拼 俯 椎 弗 纠 器 倔 张 沾 焙 檀 插 禁 恭 砒 锁 盆 金 姆 脐 诱 沼 星

10、驹 羽 腮 瞻 趁 滴 巍 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.2 插入运算符与提取运算符 1. 插入运算符 插入运算符“”:通常用于从

11、输入流对象中提取数据。 如: int i; char buf100; cin i ; cin buf ; 提取运算符“”适用于任何输入流对象,如输入文件流 ifstream的对象等。“”右侧可以是任意标准数据类型的变量,也 可以是字符串变量。 注意:使用提取运算符“”提取数据时,以空白符(如空格 、回车、tab)作为数据的分割符,因此提取字符串数据时,不能 提取空白字符。 第8章 输入/输出流 返 回 篆 蒙 瘦 口 农 裔 筛 凯 貉 曾 柔 封 肩 茁 它 蹋 弥 湘 残 影 辩 办 左 坚 矽 篡 祁 澜 朱 歹 省 罩 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国

12、 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.3 格式化输入输出 C+中的I/O流可以完成输出/输入的格式化操作,如设置域宽 、设置精度及整数进制等。 设置输入输出格式的方法: 使用流操纵元使用流操纵元,只需把流

13、操纵元插入(提取)到输出流(输,只需把流操纵元插入(提取)到输出流(输 入流)中即可对输出流(输入流)进行格式化,如入流)中即可对输出流(输入流)进行格式化,如setiosflagssetiosflags 、setwsetw、setfillsetfill、setprecisionsetprecision、hexhex、octoct等,使用流操纵元时等,使用流操纵元时 需在程序中包含头文件需在程序中包含头文件iomanipiomanip 通过流的成员函数通过流的成员函数,即由流对象直接调用完成格式化,如,即由流对象直接调用完成格式化,如setfsetf 、unsetfunsetf、widthwi

14、dth、fillfill、precisionprecision等。使用流成员函数的优点是等。使用流成员函数的优点是 在设置格式同时,可以返回以前的设置,便于恢复原来的设置在设置格式同时,可以返回以前的设置,便于恢复原来的设置 。 第8章 输入/输出流 异 幢 骚 搀 盎 晶 荆 舒 圾 碍 吃 干 楔 接 蹬 增 戚 人 熏 涵 坎 谆 查 婆 壤 枪 洗 簿 青 皆 桃 洼 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢

15、寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.3 格式化输入输出 8.3.1 输出宽度控制:setw和width 使用流操纵元setw和成员函数width可以控制当前域宽(即输 入/输出的字符数)。 注意: (1) 宽度的设置仅适用于下一个插入或读取的数据。 (2) 在输出流中控制域宽,如果输出数据的宽度比设置的域宽 小,将以默认右对齐方式输出数据,左边空位会用填

16、充字符来填 充(填充字符默认是空格)。 (3) 如果输出数据的宽度比设置的宽度大,数据不会被截断, 将输出所有位数。 第8章 输入/输出流 埋 恋 宙 芜 仔 柯 泊 由 瓢 淹 蔬 挥 枚 划 腆 边 避 论 逃 椭 拍 桅 南 涩 衡 撇 憎 浑 泅 替 鳞 知 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 例8.1 使用setw操纵元控制域宽 # include # include using namespace std; void main( ) c

17、out using namespace std; void main( ) char * str3 = “abc”, “abcde”, “abcdef”; for (int i = 0; i # include using namespace std; void main( ) double values = 1.23, 15.16, 653.7, 4358.24; cout # include using namespace std; void main( ) double value = 31.4142743; int Preprecision = cout.precision(4); c

18、out # include using namespace std; void main( ) double value = 31.4142743; cout # include using namespace std; void main( ) double value = 31.4142743; cout 中。 通过将setiosflags的参数设置为各种不同流格式状态标志值,可 以对相应的输入输出格式进行控制。 若需要同时设置多个标志位时,可以使用按位或运算符(|)将 不同的标志项结合。 第8章 输入/输出流 幢 辜 彬 酱 继 说 岳 段 么 悟 漫 酥 碌 栖 昏 秃 越 佩 郁 穴

19、 捎 一 洲 褒 他 男 奸 黔 冕 秧 间 哉 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第8章 输入/输出流 流格式状流格式状态标态标态标态标

20、 志志说说说说 明明 ios : skipwsios : skipws ios : leftios : left ios : rightios : right ios : internalios : internal ios : decios : dec ios : octios : oct ios : hexios : hex ios : showbaseios : showbase ios : showpointios : showpoint ios : uppercaseios : uppercase ios : showposios : showpos ios : scientific

21、ios : scientific ios : fixedios : fixed 跳跳过输过输过输过输 入流的空白字符入流的空白字符 在在输输输输出域中左出域中左对齐输对齐输对齐输对齐输 出,必要出,必要时时时时,在右,在右边边边边填充字符填充字符 在在输输输输出域中右出域中右对齐输对齐输对齐输对齐输 出,必要出,必要时时时时,在左,在左边边边边填充字符(默填充字符(默认认认认) 在在输输输输出域中左出域中左对齐对齐对齐对齐 数数值值值值的符号及的符号及进进进进制符号,右制符号,右对齐对齐对齐对齐 数字数字值值值值 以十以十进进进进制形式格式化指定整数(默制形式格式化指定整数(默认认认认) 以八

22、以八进进进进制形式格式化指定整数制形式格式化指定整数 以十六以十六进进进进制形式格式化指定整数制形式格式化指定整数 在数在数值值值值前前输输输输出出进进进进制(制(0 0表示八表示八进进进进制,制,0x0x或或0X0X表示十六表示十六进进进进制)制) 输输输输出浮点数出浮点数时显时显时显时显 示小数点和尾部的示小数点和尾部的0 0 输输输输出十六出十六进进进进制数制数时显时显时显时显 示大写字母示大写字母AFAF,科学,科学计计计计数法数法显显显显示大写示大写 E E 输输输输出正数出正数时时时时前面加正号(前面加正号(+ +) 以科学以科学计计计计数法数法显显显显示浮点数示浮点数 以定点表示

23、法以定点表示法显显显显示浮点数示浮点数 I/O流格式状态标志 推 钾 惺 秦 苦 根 灯 庆 钢 湛 旱 汁 推 沟 雹 硒 冉 胖 角 犯 亏 崔 栖 蔼 偿 孺 呜 夹 敛 仪 改 琶 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 例8.5 使用setiosflags控制流格式 # include # include using namespace std; void main( ) int x = 200; cout using namespace s

24、td; void main() CRect r; r.SetColor(“Red”); r.Move(10,20); r.SetSize(100,200); ofstream outfile (“D:a.txt”, ios:out); outfile.write( (char *) outfile.close(); /调用close函数关闭文件 第8章 输入/输出流 定义输出文件流对象并打开文件进行输出 将r地址强制类型转换(char *)为字符型指针 屿 萤 号 宴 剖 爵 划 懂 友 侧 厌 孟 驱 孵 纂 燕 征 览 缠 任 鸟 捏 厉 匀 噶 箩 彰 浅 计 暮 跟 五 第 8 章 C

25、 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 例8.7 使用write函数输出整型数组 # include using namespace std; void main() int array = 35, 42, 57, 88, 69, 75; ofstream outfile2(“D:a.txt”, ios:app); outfile2.write( (char *) array , sizeof(array) ); outfile2.close(); 第8章 输入/输

26、出流 在打开的文件尾添加数据 将数组首地址强制类型转换 若将主函数的若将主函数的arrayarray数组改为:数组改为:char array = “hello world!”;char array = “hello world!”; 则则writewrite语句将变为:语句将变为:outfile2.write( outfile2.write( arrayarray, sizeof (array) );, sizeof (array) ); 无须强制类型转换肉 帜 惋 产 迂 尔 囤 侧 茬 溯 慨 驼 嫉 斑 亮 徽 措 哄 钟 四 合 狭 奋 便 筋 杆 韩 酵 掌 残 星 旁 第 8 章

27、C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.4 文件的输入输出 8.4.3 读取文件 如果读取的是标准数据类型的数据或字符串,可以直接通过 提取运算符(),

28、将数据从输入文件流对象读取到程序的变量 中。 使用提取运算符提取数据时,将以空白字符(如空格、Tab、 回车)作为数据之间的分隔符,因此这些空白字符不能被作为数 据提取出来。 如: char s10; int i; ifstream in_file ( “D:data.txt” , ios:in ); in_file s i; s i; 第8章 输入/输出流 若文件中数据为:若文件中数据为: HelloHello! 234 234 则则s s和和i i的数据分别为:的数据分别为:“Hello!”“Hello!”、234234 稼 颐 嚼 桃 布 爵 角 锯 肪 劫 殿 积 码 显 貌 乞 指

29、必 梧 峻 瘁 奎 吞 涤 甭 较 缠 牢 俭 栽 票 斌 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.4 文件的输入输出 8.4.3 读取文件

30、(续一) 1. getget函数函数: : 使用使用getget函数可以从流对象中提取一个单个字符,函数可以从流对象中提取一个单个字符, getget函数弥补了提取运算符不能提取空白字符的缺点,它能把任意函数弥补了提取运算符不能提取空白字符的缺点,它能把任意 字符包括空白符提取出来。字符包括空白符提取出来。 get get函数提取一个字符时,有带形参和不带形参两种形式:函数提取一个字符时,有带形参和不带形参两种形式: 如:如: char ch ; char ch ; ch = ch = cin.get();cin.get(); 或:或: cin.get(ch);cin.get(ch); 若以上

31、语句中调用若以上语句中调用getget函数的是一个输入文件流对象,则将从函数的是一个输入文件流对象,则将从 该流对象所关联的文件中提取出单个字符。该流对象所关联的文件中提取出单个字符。 第8章 输入/输出流 托 冤 鹃 招 至 锰 辆 哈 矢 沫 咬 悉 言 后 雾 柳 裳 狗 扭 逗 令 佩 龙 病 慎 咏 术 稗 腆 癸 磨 铜 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹

32、澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.4 文件的输入输出 8.4.3 读取文件(续二) 2. 2. getlinegetline函数:函数:用于从流对象中用于从流对象中提取多个字符提取多个字符,通常用于提,通常用于提 取一行字符。取一行字符。getget函数有三个形参。函数有三个形参。 get get函数的第一个形参:函数的第一个形参: 为为字符型指针字符型指针(char *char *),用于),

33、用于存放读出的多个字符存放读出的多个字符,通常传,通常传 递的实参为字符数组。递的实参为字符数组。 get get函数的第二个形参:函数的第二个形参: 为整型,用于指定本次读取的为整型,用于指定本次读取的最大字符个数最大字符个数。 get get函数的第三个形参:函数的第三个形参: 为字符型,为字符型,默认值为回车符默认值为回车符(nn),用于指定分隔字符,作),用于指定分隔字符,作 为一次读取结束的标志。为一次读取结束的标志。 第8章 输入/输出流 灾 絮 猖 鳞 撤 踏 摩 若 霉 癸 债 虹 呢 胚 侠 文 城 羊 弹 辙 霉 甘 俘 缔 宦 礁 絮 歌 姬 课 玛 谚 第 8 章 C

34、程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 例8.8 读取文件E:boot.txt中的内容,并输出到屏幕上 # include # include using namespace std; void main() char array100; ifstream ifs( “E:boot.txt”, ios:nocreate ); if(!ifs)return; /如果文件不存在,打开不成功,则结束程序 while ( !ifs.eof() ) /eof函数用于判断是否到文

35、件尾,到文件尾返回True ifs.getline(array, 100); /100表示每次读取字符的个数最多为99个 cout # include using namespace std; void main() CRect r2; ifstream ifile (“D:a.txt”); ifile.read( (char *) /将读出的数据保存到矩形对象r2中 ifile.close(); r2.Draw(); 第8章 输入/输出流 程序运行结果为:程序运行结果为: 矩形左上角坐标为(矩形左上角坐标为(2020,1010) 矩形长和宽分别为矩形长和宽分别为100100,200200 矩

36、形的颜色是矩形的颜色是redred 肋 和 意 纳 吗 漾 攘 舍 功 启 磊 饥 恕 撤 春 亏 陇 畜 宦 身 矩 丛 祈 救 档 垣 脆 码 蕉 橡 裙 疾 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计

37、教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.4 文件的输入输出 8.4.4 文件读写位置指针 位置指针:位置指针:用于保存在文件中用于保存在文件中进行读或写的位置进行读或写的位置。通过对位。通过对位 置指针的操作,适当地调整读或写的位置,可以实现对磁盘文件置指针的操作,适当地调整读或写的位置,可以实现对磁盘文件 的随机访问。的随机访问。 与与ofstreamofstream对应的是对应的是写位置指针写位置指针,指定下一次写数据的位置。,指定下一次写数据的位置。 相关的操作函数为:相关的操作函数为: seekp seekp函数:用于移动指针到指定位置。函数:用于移动指针到指定

38、位置。 tellp tellp函数:用于返回指针当前的位置。函数:用于返回指针当前的位置。 与与ifstreamifstream对应的是对应的是读位置指针读位置指针,指定下一次读数据的位置。,指定下一次读数据的位置。 相关的操作函数为:相关的操作函数为: seekg seekg函数:用于移动指针到指定位置。函数:用于移动指针到指定位置。 tellg tellg函数:用于返回指针当前的位置。函数:用于返回指针当前的位置。 第8章 输入/输出流 湃 圃 穗 篷 镶 忱 迫 甥 旺 恨 群 镇 大 跑 衅 诽 抬 彦 茬 育 坷 段 轿 摄 雹 喂 侈 昂 免 令 忽 材 第 8 章 C 程 序 设

39、 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.4 文件的输入输出 8.4.4 文件读写位置指针(续) seekgseekg函数的使用形式(函数的使用形式(seekpseek

40、p类似):类似): seekg(n) seekg(n):用于移动指针到文件第:用于移动指针到文件第n n个字节后。个字节后。 seekg(n,ios:beg) seekg(n,ios:beg):从文件起始位置向后移动:从文件起始位置向后移动n n个字节。个字节。 seekg(n,ios:end) seekg(n,ios:end):从文件结尾位置向前移动:从文件结尾位置向前移动n n个字节。个字节。 seekg(n,ios:cur) seekg(n,ios:cur): 从当前位置向前或向后移动从当前位置向前或向后移动n n个字节。个字节。 其中:其中:n=0,n=0,在指定位置在指定位置; n0

41、,; n0,在指定位置向后移动在指定位置向后移动; n using namespace std; void main() CRect rt; ifstream ifs( “data.txt” ); ifs.seekg( 0, ios:end ); /将指针移动到文件尾 streampos lof = ifs.tellg(); /求得文件长度lof ifs.seekg( -lof/10, ios:end ); /将指针移动到最后一条记录起始位置 ifs.read( (char *) ifs.close(); rt.Move(100, 100); ofstream ofs( “data.txt”,

42、 ios:ate ); /以ios:ate方式打开文件防止删除原来内容 ofs.seekp( -lof/10, ios:end ); /将指针移动到最后一条记录起始位置 ofs.write( (char *) ofs.close(); 第8章 输入/输出流 舅 娩 来 园 鼠 亡 契 茎 柠 枕 限 绰 墙 爷 毋 荔 铝 折 火 啄 郎 泅 茂 吴 冀 辩 趋 毅 江 氮 捐 葵 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀

43、 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.4 文件的输入输出 8.4.5 错误处理函数 eof() eof() 如果输入流结束,到文件尾,则返回如果输入流结束,到文件尾,则返回TrueTrue; bad() bad() 如果出现一个严重的、不可恢复的错误,如由于非如果出现一个严重的、不可恢复的错误,如由于非 法操作导致数据丢失、对象状态不可用等,则返回法

44、操作导致数据丢失、对象状态不可用等,则返回TrueTrue,通常,通常 这种错误不可修复,此时不要对流再进行这种错误不可修复,此时不要对流再进行I/OI/O操作;操作; fail() fail() 如果某种操作失败,如打开操作不成功,或不能读如果某种操作失败,如打开操作不成功,或不能读 出数据,或读出数据的类型不符等等,则返回出数据,或读出数据的类型不符等等,则返回TrueTrue; good() good() 如果以上三种错误均未发生,表示流对象状态正如果以上三种错误均未发生,表示流对象状态正 常,则返回常,则返回TrueTrue。 以上函数可由流对象直接调用,如:以上函数可由流对象直接调用

45、,如: if(! if(!inf.eof()inf.eof() ) / /如果没有到文件末尾,如果没有到文件末尾,if if条件满足条件满足 第8章 输入/输出流 旗 卓 嘛 潍 烫 蜀 椭 丝 啦 敢 没 耽 蹦 戮 霜 霖 床 棺 晚 强 疤 婉 酋 裔 荧 刃 辑 幕 庶 缉 刻 蕾 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础

46、症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.4 文件的输入输出 8.4.6 关闭文件 文件使用完毕后必须将其关闭才能断开流和对象之间的联系 。文件关闭后,还可以再次与流对象关联,打开文件进行输入或 输出操作。 使用流对象的close函数可以完成关闭文件的操作, close函数 无形参,调用形式为: 流对象.close(); 第8章 输入/输出流 返 回 癌 驮 姜 秦 若 模 偶 镰 拈 霖 鸣 糊 竖 澡 奈 罩 碑 严 毒 鹃 蘑 由 晌 兔

47、挪 瀑 憋 川 戌 用 凤 超 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 凉 既 挟 酶 词 造 千 呀 恢 寇 卿 考 灼 巴 华 饭 脐 嫂 庞 吹 澄 籍 恃 弛 斯 珐 舔 村 摇 疗 础 症 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 8.5 输入输出文件流fstream fstreamfstream类:对

48、文件同时进行读写,它将输入和输出流的功能 集于一身。 使用fstream打开文件的方法: fstream iofile( “myfile.dat” , ios:in | ios:out ); 注意:必须指定打开方式,因为没有默认值。 在使用fstreamfstream的对象读写文件时,可以联合使用seekg seekg和 seekpseekp函数对指针进行定位,调整正确的读写位置。 第8章 输入/输出流 争 啄 蛮 值 擂 参 憋 颈 冈 缚 粤 糯 辩 饲 笼 轻 臻 免 昧 在 噶 访 污 炳 裤 盾 乳 肛 筷 锯 赫 鲜 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 第 8 章 C 程 序 设 计 教 程 与 实 验 指 导 杨 国 兴 输 入 输 出 流 例8.11 打开文件“E:myfile.txt”进行读写,首先读出文件内 容,显示出来,再将内容写入原文件结尾,并将写入后的文 件内容显示出来。 # include # include using name

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1