创建数组对象时,在构造函数中读该取文件获得数据

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:49:07
【题目】以下程序定义了一个整型数组类Array,数组长度为30个元素。数组的初始化数据来源以及程序结束后数组的数据保存都指向工程文件夹下的文本文件”vdata.txt”。即,创建数组对象时,在构造函数中读该取文件获得数据(首次创建对象时文件是打不开的,数组就没有初始化值),当程序结束时,析构函数将数据写入上述文件。
【说明】本程序的执行流程是,创建数组对象并初始化,向数组中添加一些数据。请按以上说明和要求将下面程序补充完整,并调试运行。
#include<iostream>
#include<fstream>
using namespace std;
class Array;
ostream& operator<<(ostream &os,Array &a);
class Array{
int v[30];
int last; //最后一个元素下标
public:
Array(); //创建表,从文件中读取数据进行初始化
~Array(); //数据保存到文件中
void insertAfter(int); //在当前表的最后添加一个元素
friend ostream& operator<<(ostream &, Array &); //用于直接输出数组对象
};

Array::Array(){
//此处添加代码
}
Array::~Array(){
//此处添加代码
}
void Array::insertAfter(int t){
last++;
v[last]=t;
}
ostream& operator<<(ostream &os,Array &a){
//此处添加代码
}
void main(){
Array vector; //创建数组
int t;
cout<<vector;
co

1.
ifstream file("vdata.txt");
int t;
last=-1;
if(file) //文件打开成功
while(!file.eof()){
file>>t;
if(!file.eof()){last++;v[last]=t;}
}
file.close();
file.clear(0);
2.
ofstream file("vdata.txt");
for(int i=0;i<=last;i++) file<<v[i]<<" ";
file.close();
3.
for(int i=0;i<=a.last;i++) os<<a.v[i]<<" ";
os<<endl;
return os;
多看看书,蛮简单的