C++重修 第九章第二版概要1.ppt

C重修第九章第二版概要1

第九章 流类库和输入/输出 9.1 C++的基本流类体系 9.2* 输入输出的格式控制 9.3 标准设备的输入/输出 9.4 文件的输入与输出 1 文件打开 3 文件关闭 2-1 文本文件的读写 2-2二进制文件的读写 9.4.4  文件的随机访问(选读) 9. 6 文件与对象 【例9.7】复制文件。 【例9.8】按行复制文本文件。 【例9.9】将对象数据创建到文本文件中,以备读取。 【例】将1-500之间的偶数写入文件data.dat中,再将其显示在屏幕上。 【例9.10】创建二进制数据文件,以及数据文件的读取。 【例9.11】使用随机访问对【例9.10】进行改造。 template typename T ArrayT::Array(int maxs){ maxSize=maxs; Subscript=-1; //私有数据不容许直接赋初值,必须在构造函数中赋初值 T temp; elements=new T[maxSize]; datafile.open(mydatafile.txt,ios::in); //如文件不存在,打开失败 if(datafile){ while(!datafile.eof()){ datafiletemp; if(!datafile.eof()) //读到无数据可读后,即读入不成功,eofbit为1 ordinsert(temp); //即使原文件未排序,退出时按排好序的重存 } datafile.close(); //必须放此处,打开成功才能关闭 } datafile.clear(0); //曾经读到文件结束或文件打开失败,流无法恢复 } template typename T ArrayT::~Array(){ int i; datafile.open(mydatafile.txt,ios::out); for(i=0;i=Subscript;i++) datafileelements[i]; datafile.close(); delete[]elements; } template typename T void ArrayT::renews(){ int i; T *temp=elements; maxSize*=2; elements=new T[maxSize]; for(i=0;i=Subscript;i++) elements[i]=temp[i]; delete []temp; } template typename T void ArrayT::ordinsert(T elem){ int i,j; //输入时以货号为关键字排序 if(IsFull()) renews(); for(i=0;i=Subscript;i++) if(elem=elements[i]) break; if(elem!=elements[i]) { //待插入的是目前最大的 for(j=Subscript;j=i;j--) elements[j+1]=elements[j]; Subscript++; } elements[i]=elem; // show(); } template typename T ostreamoperator(ostreamdist,ArrayTar){ int i; for(i=0;i=ar.Subscript;i++) distar.elements[i]; return dist; } * * “流”(stream)—— 数据从一个对象到另一个对象的流动 管理数据流动的接口(流) 输入输出流类库(封装) 程序 (内存) 广义文件 (标准设备、磁盘文件) 流 (对象) 输出 输入 程序实现 系统实现 9.1 C++的基本流类体系 9.3 标准设备的输入/输出 9.2* 输入输出的格式控制 9.4 文件的输入输出 9.5* 字符串流(内存流) 9.6 文件与对象 basic_ios basic_streambuf basic_istream basic_ ostream basic_ifstream basic_iostream basic_ofstream basic_fstream

文档评论(0)

1亿VIP精品文档

相关文档