0
我试图从类中保存一个对象。当我添加一个新的记录(添加一个新的对象被保存)之前的记录被删除。我究竟做错了什么?看来,一旦我添加一个新的对象,之前创建的对象被删除,因为idk。一直试着这几个小时。似乎无法弄清楚。C++上一条记录在写入新对象时被删除
void Department2File(HANDLE screen, Department &Departments, int deptcount)
{
Department Testing;
fstream file;
file.open("Departmentsdata.dat", ios::out | ios::binary);
file.close();
file.open("Departmentsdata.dat", ios::in | ios::out | ios::binary);
if (!file)
{
cout << "Error opening file.";
}
// writting data
long size = (deptcount * sizeof(Departments));
if (deptcount == 0)
{
size = (deptcount * sizeof(Departments));
}
else
{
size = (deptcount * sizeof(Departments))+1;
}
cout << "\nsaved!" << endl;;
file.clear();
file.seekp(size, ios::beg);
file.write(reinterpret_cast <char *>(&Departments), sizeof(Departments));
file.clear();
file.seekg(size, ios::beg);
file.read(reinterpret_cast<char *> (&Testing), sizeof(Departments));
cout << Testing.DepartmentID;////////////<--------------delete
///////////////////////////////
///////////////DELETE//////////
file.clear();
file.seekg(0, ios::beg);
file.get(reinterpret_cast<char *> (&Testing), sizeof(Departments));
cout <<"\n RECORD 0: "<<Testing.DepartmentID;
////////////////////////////
file.close();
}