资源描述:
《《文件流和内存流》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第14章文件流和内存流14.1文件及文件流的基本概念文件:程序+数据+文档,外部设备的总称(aaa.cnullprncon)14.1.1输入和输出内存向外存:输出、写、存外存向内存:输入、读、取14.1.2文件的存储方式ASCII码:1024=49485052=01001001010010000101000001010010二进制存储方式:1024=0000010000000000文件流:专门用于磁盘文件I/O的流类(专门用于磁盘文件I/O的类)。14.1.3文件流类体系类filebuf用于管理文件的
2、缓冲区。类fstreambase提供了I/O所需要的所有成员函数。类ifstream用于从文件中取(i)数据。类ofstream用于向文件输出(o)数据。类fstream用于文件的双向数据传递I/O)。以上类的派生(产生)方法参看305页。14.2文件的打开与关闭14.2.1文件的打开C++在文件流类中提供了4个文件的成员函数:voidfstreambase::open(char*,int,int=filebuf::openprot)voidifstream::open(char*,int=ios::
3、in,int)voidofstream::open(char*,int=ios::out,int)voidfstream::open(char*,int,int)说明:第一个参数是文件名,第二个参数是访问方式,第三个参数是保护方式。在所有文件流的基类ios中,可以使用下列打开模式的公有枚举成员:in0x01输入out0x02输出ate0x04将指针置于文件未app0x08追加binary0x80打开二进制文件一般情况,将几种模式组合使用。更多的成员参考306页。例:打开一个文件result文件ifst
4、reaminfile;infile.open(“result”);等价于:infile.open(“result”,ios::in);//打开输入文件infile.open(“result”,ios::in
5、ios::binary);//打开二进制输入文件说明:对于类ifstream的对象,打开文件时默认模式in。对于类ofstream的对象,打开文件时默认模式out。C++在文件类中提供的4个文件流类中同时重载一个带缺省参数的构造函数:voidfstreambase::fstreambase(cha
6、r*,int,int=filebuf::openprot)voidifstream::ifstream(char*,int=ios::out,int)voidofstream::ofstream(char*,int=ios::in,int)voidfstream::fstream(char*,int,int)定义对象时,同时也打开了一个文件。4.若文件打开出错,则返回一个NULL值。因此常常用下列格式提示出错:ifstreaminfile;infile.open(“result”);if(!infil
7、e){cour(“cannotopenthisfile”);exit(1);}其中,exit(1)为返回编辑状态,1可省。14.2.2文件的关闭ifstreaminfile;infile.open(“result”);if(!infile){cour(“cannotopenthisfile”);exit(1);}infile.close();14.3文件的读写使用两个读写运算符:<<和>>例14-1:模拟DOS命令,将*.cpp再复制一份,新文件名为:*new.cpp算法:打开输入文件打开输入/输出文
8、件文件复制文件关闭方法一:#include"fstream.h"#include"iostream.h"#include"stdlib.h"voidmain(intargc,char*argv[]){if(argc!=3){cout<<"inputerror"<9、treamoutfile(argv[2]);//定义对象并初始化,打开模式省if(!outfile){cout<<"Con'topentargeifile"<>ch)outfile<