visualc++60第九章.ppt

上传人:san****019 文档编号:20921690 上传时间:2021-04-21 格式:PPT 页数:20 大小:217.76KB
收藏 版权申诉 举报 下载
visualc++60第九章.ppt_第1页
第1页 / 共20页
visualc++60第九章.ppt_第2页
第2页 / 共20页
visualc++60第九章.ppt_第3页
第3页 / 共20页
资源描述:

《visualc++60第九章.ppt》由会员分享,可在线阅读,更多相关《visualc++60第九章.ppt(20页珍藏版)》请在装配图网上搜索。

1、1 第 九 章 C+的 I/O流 库9.1 流9.2 磁 盘 文 件 9.3 程 序 举 例 2 9.1流 内 存 设 备数 据数 据输 出输 入 3 标 准 输 出 流 cout cout是 系 统 定 义 过 的 ostream类 的 一 个 对 象 , 该 类 提 供 的 多种 输 出 功 能 都 适 用 于 cout,包 括 : 使 用 流 插 入 操 作 符 ( ) 输 出 各 种 数 据通 过 成 员 函 数 put输 出 字 符通 过 成 员 函 数 write输 出 字 符 串1.成 员 函 数 put的 使 用 格 式 : 作 用 为 在 屏 幕 上 输 出 一 个 字 符

2、, 返 回 值 为 ostream类 对 象 的 引 用 , 故 函 数 可 以 连 续 调 用 。cout.put(char c)cout.put(const char c)或 字 符 变 量 字 符 常 量 4 #include iostream.hvoid main()char ch=A; cout.put(ch)endl; cout.put(O).put(k)endl;例 9.1 连 续 调 用2.成 员 函 数 write的 使 用格 式 :作 用 是 将 一 个 字 符 串 的 部 分 或 全 部 内 容 在 屏 幕 上 输 出 。该 函 数 的 返 回 值 为 ostream类

3、对 象 的 引 用 , 故 函 数 可 以 连 续 调 用 。cout.write(const char *str,int n)字 符 数 组 或 字 符 指 针输 出 的 字 符 个 数 5#include iostream.h#include void main()char *ch=ABCDEFGHIJKLMN; cout.write(ch,10).put(n); /输 出 该 字 符 串 的 前 10个 字 符 cout.write(ch,strlen(ch)) 输 入 数 据通 过 成 员 函 数 get输 入 字 符 或 字 符 串通 过 成 员 函 数 read输 入 字 符 串1

4、.成 员 函 数 get的 使 用 格 式 : 作 用 为 从 键 盘 上 输 入 一 个 字 符 给 内 存 变 量 chcin.get(char ch)ch=cin.get( )或 字 符 变 量 注 意 : 空 白 符 作 为 有 效 字 符 被 读 入 , 不 同 于 使 用 提 取 符 ( ) 7 例 9.3 统 计 字 符 串 中 包 含 的 字 符 个 数#include iostream.hvoid main()int count=0;char ch;coutinput a serial of characters:endl;while(ch=cin.get()!=EOF) /

5、 按 ctrl+z结 束 输 入coutch; count+;coutcountch程 序 结 果 又 如 何 ?3.对 比 两 种 输 入 方 法 的区 别 8 使 用 get成 员 函 数 读 入 一 行 字 符 串 , 也 可 以 用 成 员 函 数 getline实 现 , 形 式 如 下 :cin.get(char *buf,int size,char ch) cin.getline(char *buf,int size,char ch)存 放 字 符 串 的 字 符数 组 或 字 符 指 针 限 定 最 大 字 符 个 数不 能 超 过 size-1 指 定 的 结 束 符 ,该

6、字 符 不 包 含 在字 符 串 中 , 默 认结 束 符 为 n 9 #include iostream.h#include string.hvoid main()int line,max=0; char s50,t50; coutinput a string:max) max=line; strcpy(t,s); coutthe string of longest line is:endl; couttendl; coutit has maxcharactersendl; 例 9.4 找 最 长 串 输 入 一 行 字 符 串 , 最大 长 度 不 能 超 过 49若 改 为 cin.ge

7、tline(s,50, )结 果 如 何 ? 10 2. 成 员 函 数 read的 使 用格 式 :例 9.5 cin. read(char *buf, int size)读 取 到 字 符 数 组 中 的 字 符 个 数( 不 同 于 getline函 数 )#include iostream.h#include string.hvoid main()char ch100; cin.read(ch,10); /读 取 输 入 流 中 的 前 10个 字 符 到 数 组 ch中 coutn The string entered is:n; cout.write(ch,cin.gcount()

8、endl; 对 比 cin.getline(ch,10)的 结 果 11 9.2 磁 盘 文 件1. 打 开 文 件创 建 流 类 对 象 的 同 时 打 开 文 件 ifstream类 操 作 文 件 输 入 ofstream类 操 作 文 件 输 出fstream类 操 作 文 件 输 入 输 出ofstream outfile(abc.dat);fstream outfile(abc.dat, ios:out); 先 创 建 流 类 对 象 、 再 打 开 文 件 o f s t r e a m o u t f i l e ; outfile.open(abc.dat);等 价创 建 的

9、 输出 流 对 象 创 建 的 输 入输 出 流 对 象 以 输 出 形 式打 开 文 件 12 2.关 闭 文 件 outfile.close(); 关 闭 文 件 的 成 员 函 数已 定 义 的 与 某 磁 盘 文件 相 关 联 的 流 类 对 象3.文 本 文 件 的 读 写 对 已 正 确 打 开 的 某 文 本 文 件 , 可 以 通 过 对 与 其 相 关 联 的流 类 对 象 的 如 下 操 作 进 行 读 写使 用 提 取 、 插 入 操 作 使 用 成 员 函 数 get(含 getline)和 put 例 9.6 13 #include stdlib.h#include

10、iostream.h#include fstream.hvoid main()ofstream outfile; outfile.open(abc.txt); /以 写 的 方 式 打 开 文 件 abc.txt if(!outfile) coutabc.txt cant openendl; abort(); /打 开 失 败 , 结 束 程 序 char ch=a; while(ch=z) outfilech; coutch; coutendl; 检 查 文 件 是 否 正 常 打 开到 文 件 尾 返 回 1通 过 插 入 操 作 将 内 存 变量 的 内 容 写 到 文 件 中 14 #

11、includeiostream.h#include fstream.h#include stdlib.hvoid main()char s100; ofstream outf; outf.open(f1.dat); if(!outf) coutcant open f1.datendl; abort(); outfHe is a boy.n; outfShe is a girl.n; outfIm a teacher.n; outf.close(); ifstream inf(f1.dat); while(!inf.eof() inf.getline(s,sizeof(s); coutsendl

12、; 通 过 getline函 数 从 文 件中 读 一 行 字 符 串 到 数 组通 过 插 入 操 作 将 若 干字 符 串 写 到 文 件 中 例 9.7 15 4.二 进 制 文 件 的 读 写 创 建 流 对 象 或 打 开 文 件 时 需 显 式 声 明 文 件 类 型 为 二 进 制ios:binary最 常 用 成 员 函 数 read和 write实 现 读 写可 使 用 提 取 、 插 入 操 作 完 成 读 写 如 : ofstream outfile;outfile.open(file.dat,ios:binary);或 : ofstream outfile(file.d

13、at,ios:binary); 皆 表 示 以 二 进 制 模 式 打 开 文 件 “ file.dat” , 并 将其 与 输 出 流 对 象 outfile相 关 联 。 16 struct studentint num; char name20; double score;stu5;ofstream outfile(file.dat,ios:binary);假 设 有 定 义 :则 可 通 过 如 下 程 序 段 实 现 文 件 的 写 操 作 :for(int i=0;istui.numstui.namestui.score; outfile.write(char *) 将 一 个 记

14、 录 中 的 数 据都 变 为 字 符 进 行 处 理 outfilestui.numstui.namestui.score;也 可 通 过 插 入 符 实 现 17 5.随 机 访 问 文 件 通 过 成 员 函 数 定 位 读 写 文 件 指 针 , 实 现 随 机 访 问操 作 读 指 针 的 成 员 函 数 :istream返 回 读 文 件 指 针 位 置定 位 读 文 件 指 针 位 置 ios:beg 相 对 于 流 开始 处 ios:cur 相 对 于 当 前位 置ios:end 相 对 于 流 结尾 处如 , 假 设 inf是 一 个 istream类 的 流 , 则 :in

15、f.seekg(50,ios:beg);表 示 使 读 指 针 从 流 开 始 位 置 后 移 50字 节 inf.seekg(-50,ios:end); 表 示 使 读 指 针 从 流 结 尾 处 前 移 50字 节 18操 作 写 指 针 的 成 员 函 数 :ostream返 回 写 文 件 指 针 位 置定 位 写 文 件 指 针 位 置 含 义 同 读 指 针 利 用 seekg或 seekp定 位 文 件 指 针 后 , 再 调 用 读 写 成员 函 数 , 便 可 以 实 现 文 件 的 随 机 读 写 , 例 子 见 教 材 p323 19 9.3 程 序 举 例例 9.8 设

16、 计 程 序 实 现 将 给 定 的 文 本 文 件 在 屏 幕 上 分 屏 显 示 的 功 能 #include iostream.h#include fstream.h#include stdio.h#include stdlib.hvoid main()int r; char c; char fn15,buf100; fstream file1; coutfn;/输 入 指 定 的 文 件 名 file1.open(fn,ios:in); if(!file1) coutcant open the file.n; abort(); while(!file1.eof() r=0; /计 数

17、器 代 表 已 显 示 在 屏 幕 上 文 本 的 行 数 while(!file1.eof() /逐 行 读 文 件 coutbufendl; r+; coutpress enter key.; c=getchar(); /键 入 回 车 键 后 显 示 下 一 屏 file1.close(); 20 例 9.9 将 sin(x)在 i(2 /360)( i=0,1,359) 上 的 值 保 存 在 文件 dsin.dat中 , 并 从 该 文 件 中 读 取 数 据 , 以 这 些 数 据 为 基 础 , 计 算sin(x)在 0, 2 上 的 积 分 。 #include fstream

18、.h#include math.h#define SIZE 361#define PI 3.14159#include stdlib.hvoid main( ) double dataSIZE, s=0; for (int i=0; iSIZE; i+)datai=sin(2*i*PI/360); fstream file1; file1.open(dsin.dat,ios:out); if(!file1) coutcant open the file.n; abort(); file1.write (char*)data, sizeof(data); file1.close(); file1.open(dsin.dat,ios:in); if(!file1) coutcant open the file.n; abort(); file1.read(char*)data, sizeof(data); for (i=0; iSIZE; i+) s=s+datai; s=s*(2*PI/360); coutsendl; file1.close(); 将 sin(x)在 02上 的 值 写 入 文 件dsin.dat 梯 形 法 求 积 分

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!