main函数中会首先创建一个类对象,在运行代码时,先执行构造函数,读文件操作在构造函数里。运行时就弹出黑窗,然后内存一直增加。
将文件相关的代码注释掉,程序正常运行。不知道读文件代码哪里出了问题
构造函数的读文件代码如下:
BookManage::BookManage()
{
ifstream ifs;
ifs.open(FileName, ios::in);
//文件不存在
if (!ifs.is_open())
{
Book_Num = 0; //初始化书籍种类数量为0
ifs.close();
return; //如果文件不存在直接退出,
}
//文件数据为空
char a;
ifs >> a;
if (ifs.eof())
{
Book_Num = 0;
ifs.close();
return;
}
//文件存在且数据不为空
Book_Num = get_bookNum(); //更新书籍种类数量
string name;
string isbn;
string number;
string writer;
string press;
string publish_time;
int publish_number;
double price;
int amount;
for(int i=0;i<Book_Num;i++)
{
ifs >> name >> isbn >> number >> writer >> press >> publish_time >> publish_number >> price >> amount;
BookManage b;
b.Name = name;
b.ISBN = isbn;
b.Number = number;
b.Writer = writer;
b.Press = press;
b.Publish_Time = publish_time;
b.Publish_Number = publish_number;
b.Price = price;
b.Amount = amount;
book.push_back(b);
}
ifs.close();
}
文件中的数据:
运行时: