文件流
来源:百度文库 编辑:神马文学网 时间:2024/04/24 03:50:41
13.文件流
#include
#include
#include
#include
class CFile
{
private:
char *fname;
public:
bool Save(int *d,int n);
int Load(int *p);
CFile() {fname=NULL;}
~CFile() {delete []fname;}
void SetFname(char *r);
};
void CFile::SetFname(char *f)
{
if(fname) delete []fname;
fname=new char[strlen(f)+1];
strcpy(fname,f);
}
bool CFile::Save(int *d,int n)
{
ofstream fp;
int i;
fp.open(fname);
if(!fp) return false;
fp<
fp.close();
return true;
}
int CFile::Load(int *p)
{
ifstream fp;
int i,n;
fp.open(fname,ios::nocreate);
if(!fp) return 0;
fp>>n;
for(i=1;i<=n;i++)
{
p++;
fp>>*p;
}
fp.close();
return n;
}
void main()
{
CFile f;
int GetData(int *d);
void DisplayData(int *d,int n);
int n,d[1001];
char s[41];
n=GetData(d);
DisplayData(d,n);
do{
cout<<"请输入文件名:";
cin>>s;
}
while(!s[0]);
f.SetFname(s);
if(!f.Save(d,n)) return;
n=f.Load(d);
if(n>0) DisplayData(d,n);
}
int GetData(int *d)
{
int i,n;
cout<<"生成多少项数据?";
cin>>n;
srand(time(NULL));
for(i=1;i
return n;
}
void DisplayData(int *d,int n)
{
int i;
cout.setf(ios::left);
for(i=1;i
{
cout.width(6);
cout<
if(i%10==0) cout<
}
cout<
}