一个多态职工管理系统出现的问题
由于代码过多,发出来比较麻烦,不知道能不能这样直接简单分析一下代码不运行成功的原因创建了一个WorkerManager类和类函数get_EmpNum()
//统计文件中人数
int WorkerManager::get_EmpNum()
{
ifstream ifs;
ifs.open(FILENAME, ios::in); //打开文件 读
int id;
string name;
int dId;
int num = 0;
while (ifs >> id && ifs >> name && ifs >> dId)
{
//统计人数变量
num++;
}
ifs.close();
return num;
}
构造函数的时候写入文件并且读取了文件,发现WorkerManager::WorkerManager()
{
//1、文件不存在
ifstream ifs;
ifs.open(FILENAME, ios::in); //读文件
if (!ifs.is_open())
{
cout << "文件不存在" << endl;
//初始化属性
//初始化记录人数
this->m_EmpNum = 0;
//初始化数组指针
this->m_EmpArray = NULL;
//初始化文件是否为空
this->m_FileIsEmpty = true;
ifs.close();
return;
}
//2、文件存在 数据为空
char ch;
ifs >> ch;
if (ifs.eof())
{
//文件为空
cout << "文件为空!" << endl;
//初始化记录人数
this->m_EmpNum = 0;
//初始化数组指针
this->m_EmpArray = NULL;
//初始化文件是否为空
this->m_FileIsEmpty = true;
ifs.close();
return;
//3、文件存在,并且记录数据
int num = this->get_EmpNum();
cout << "职工人数为:" << num << endl;
this->m_EmpNum = num;
}
////初始化属性
//this->m_EmpNum = 0;
//this->m_EmpArray = NULL;
}
其步骤(3文件存在,并且记录数据)的代码无论怎么调试都运行不了,已经按照格式写入了对应的文本内容,不知道哪里出错了 //2、文件存在 数据为空
char ch;
ifs >> ch;
if (ifs.eof())
{
//文件为空
cout << "文件为空!" << endl;
//初始化记录人数
this->m_EmpNum = 0;
//初始化数组指针
this->m_EmpArray = NULL;
//初始化文件是否为空
this->m_FileIsEmpty = true;
ifs.close();
return;
}////////////////////////////////////////
//3、文件存在,并且记录数据
ifs.close();//////////////////////////////////////////////////////////////////////
int num = this->get_EmpNum();
cout << "职工人数为:" << num << endl;
this->m_EmpNum = num;
页:
[1]