完成:
对文件进行判断是否存在,并初始化。读取和操作整型数组。
头文件
xxxx.h
#include <iostream>
#include <fstream>
using namespace std;
#define HISTROY_FILE "/home/.文件路径"
#define NUM 27
class historyFileHandle
{
public:
historyFileHandle();
void openHistoryFile();
int addDataToFile(int flag);
int deleteDataToFile(int flag);
void saveArrToFilr();
int ShowArr[NUM]; //读取文件中的数组
};
xxxx.cpp:
#include "xxxx.h"
historyFileHandle::historyFileHandle()
{
for(int i=0;i<NUM;i++)
{
ShowArr[i] = -1;
OFFShowArr[i] = i;
}
openHistoryFile();
}
void historyFileHandle::openHistoryFile()
{
fstream fout,fin;
fout.open(HISTROY_FILE,ios::in);
//不存在
if(!fout)
{
fin.open(HISTROY_FILE,ios::out);
if(!fin)
{
cout<<"no_create";
return;
}
fin<<0<<" ";
fin<<1<<" ";
fin<<2<<" ";
fin.close();
ShowArr[0] = 0;
ShowArr[1] = 1;
ShowArr[2] = 2;
}
else
{
int i = 0;
while(!fout.eof())
{
fout>>ShowArr[i];
i++;
}
}
}
int historyFileHandle::addDataToFile(int flag)
{
for(int i=0;i<NUM;i++)
{
if(ShowArr[i]<0)
{
ShowArr[i] = flag;
break;
}
}
saveArrToFilr();
}
int historyFileHandle::deleteDataToFile(int flag)
{
for(int i=0;i<NUM;i++)
{
if(ShowArr[i] == flag)
{
ShowArr[i] = -1;
break;
}
}
saveArrToFilr();
}
//将数组保存到文件中
void historyFileHandle::saveArrToFilr()
{
fstream fin;
fin.open(HISTROY_FILE,ios::out);
if(!fin)
{
cout<<"no_create";
return;
}
for(int i=0; i<NUM; i++)
{
if(ShowArr[i]>=0)
{
fin<<ShowArr[i]<<" ";
}
}
fin.close();
}