我想製作一個程序來存儲僱員的數據庫並將它們存儲在外部文件中。從.dat文件讀取矢量並將其加載到程序中的函數將讀取文件,但每當我嘗試顯示或修改加載的矢量時,程序都會崩潰。當我嘗試輸出從文件讀取的數據時,我的C++程序崩潰
//displays vector
void Database:: displayAll() const
{
for(std::vector<Employee>::const_iterator iter = mEmployees.begin(); iter != mEmployees.end(); ++iter)
{
iter -> display();
}
}
std::vector<Employee> mEmployees;
void Database::readData()
{
ifstream empIn("employee.dat" , ios::binary);
empIn.seekg(0,ifstream::end);
long size2 = empIn.tellg();
empIn.seekg(0,ifstream::beg);
mEmployees.resize(size2);
empIn.read((char*)&mEmployees, size2);
empIn.close();
cout << mEmployees.size() << endl; //this tests whether or not it reads.
}
你是不是改變寫入數據的代碼引入同樣的錯誤?請注意,到目前爲止您編寫的任何數據都將無法使用(因爲您實際上已經編寫了一堆隨機字節) –