visualc++60第九章知识课件

上传人:yuzo****123 文档编号:141226261 上传时间:2020-08-05 格式:PPT 页数:20 大小:297.50KB
返回 下载 相关 举报
visualc++60第九章知识课件_第1页
第1页 / 共20页
visualc++60第九章知识课件_第2页
第2页 / 共20页
visualc++60第九章知识课件_第3页
第3页 / 共20页
visualc++60第九章知识课件_第4页
第4页 / 共20页
visualc++60第九章知识课件_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《visualc++60第九章知识课件》由会员分享,可在线阅读,更多相关《visualc++60第九章知识课件(20页珍藏版)》请在金锄头文库上搜索。

1、1,第九章 C+的I/O流库,9.1 流 9.2 磁盘文件 9.3 程序举例,2,9.1流,输出,输入,3,标准输出流 cout cout是系统定义过的ostream类的一个对象,该类提供的多种输出功能都适用于cout,包括:,使用流插入操作符()输出各种数据 通过成员函数put输出字符 通过成员函数write输出字符串,1.成员函数put的使用 格式: 作用为在屏幕上输出一个字符,返回值为ostream类对象的引用,故函数可以连续调用。,cout.put(char c) cout.put(const char c),或,字符变量,字符常量,5,#include iostream.h #inc

2、lude void main() char *ch=ABCDEFGHIJKLMN; cout.write(ch,10).put(n); /输出该字符串的前10个字符 cout.write(ch,strlen(ch)endl;/输出全部字符串 ,例9.2,6,标准输入流 cin cin是系统定义过的istream类的一个对象,该类提供的多种输入功能都适用于cin,包括:,使用流提取操作符()输入数据 通过成员函数get输入字符或字符串 通过成员函数read输入字符串,1.成员函数get的使用 格式: 作用为从键盘上输入一个字符给内存变量ch,cin.get(char ch) ch=cin.get

3、( ),或,字符变量,注意:空白符作为有效字符被读入,不同于使用提取符(),7,例9.3 统计字符串中包含的字符个数,#include iostream.h void main() int count=0; char ch; coutinput a serial of characters:endl; while(ch=cin.get()!=EOF) / 按ctrl+z结束输入 coutch; count+; coutcountendl; ,不断输入字符,直到输入结束符,1.观察运行结果 2. 将循环条件改为 cinch 程序结果又如何? 3.对比两种输入方法的区别,8,使用get成员函数读入

4、一行字符串,也可以用成员函数getline实现,形式如下:,cin.get(char *buf,int size,char ch) cin.getline(char *buf,int size,char ch),存放字符串的字符数组或字符指针,限定最大字符个数不能超过size-1,指定的结束符,该字符不包含在字符串中,默认结束符为n,9,#include iostream.h #include string.h void main() int line,max=0; char s50,t50; coutmax) max=line; strcpy(t,s); coutthe string of

5、longest line is:endl; couttendl; coutit has maxcharactersendl; ,例9.4 找最长串,输入一行字符串,最大长度不能超过49,若改为cin.getline(s,50, ) 结果如何?,10,2. 成员函数read的使用 格式: 例9.5,cin. read(char *buf, int size),读取到字符数组中的字符个数(不同于getline函数),#include iostream.h #include string.h void main() char ch100; cin.read(ch,10); /读取输入流中的前10个字

6、符到数组ch中 coutn The string entered is:n; cout.write(ch,cin.gcount()endl; ,对比cin.getline(ch,10) 的结果,11,9.2 磁盘文件,1. 打开文件 创建流类对象的同时打开文件,ifstream类操作文件输入 ofstream类操作文件输出 fstream类操作文件输入 输出,ofstream outfile(abc.dat); fstream outfile(abc.dat, ios:out);,先创建流类对象、再打开文件,ofstreamoutfile; outfile.open(abc.dat);,等价,

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

8、txt if(!outfile) coutch; coutch; coutendl; ,检查文件是否正常打开,到文件尾返回1,通过插入操作将内存变量的内容写到文件中,14,#includeiostream.h #include fstream.h #include stdlib.h void 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

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

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

11、namestui.score;,也可通过插入符实现,17,5.随机访问文件 通过成员函数定位读写文件指针,实现随机访问,操作读指针的成员函数:,istream,返回读文件指针位置,定位读文件指针位置,ios:beg相对于流开始处 ios:cur相对于当前位置 ios:end相对于流结尾处,如,假设inf是一个istream类的流,则:,inf.seekg(50,ios:beg);表示使读指针从流开始位置后移50字节 inf.seekg(-50,ios:end); 表示使读指针从流结尾处前移50字节,18,操作写指针的成员函数:,ostream,返回写文件指针位置,定位写文件指针位置,含义同读指

12、针,利用seekg或seekp定位文件指针后,再调用读写成员函数,便可以实现文件的随机读写,例子见教材p323,19,9.3 程序举例,例9.8 设计程序实现将给定的文本文件在屏幕上分屏显示的功能,#include iostream.h #include fstream.h #include stdio.h #include stdlib.h void main() int r; char c; char fn15,buf100; fstream file1; coutfn;/输入指定的文件名 file1.open(fn,ios:in); if(!file1) coutcant open th

13、e file.n; abort(); ,while(!file1.eof() r=0; /计数器代表已显示在屏幕上文本的行数 while(!file1.eof() ,20,例9.9 将sin(x)在i(2/360)(i=0,1,359)上的值保存在文件dsin.dat中,并从该文件中读取数据,以这些数据为基础,计算sin(x)在0,2上的积分。,#include fstream.h #include math.h #define SIZE 361 #define PI 3.14159 #include stdlib.h void main( ) double dataSIZE,s=0; for

14、 (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,梯形法求积分,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号