Я пытаюсь сохранить содержимое объекта в файл, а затем прочитать их.
У меня есть функции, которые добавляют область, загружают существующую область. Эти функции используют объекты класса Area для сохранения и загрузки идентификатора, имени области и количества узлов в области.
//in the header file
class Area:
{
public:
ushort u16ID;
string sAreaName;
vector<ushort> nodesList;
};
Как мне записать это в файл, чтобы загружать данные при перезапуске программы (т.е. программа закрывается, а затем снова запускается).
До сих пор у меня было следующее для записи и чтения в файл:
//In my main .cpp file
//Creating output stream.
std::ostream& operator<<(std::ostream& out, const Area *objArea) {
out.write(reinterpret_cast<const char*>(objArea->u16ID),sizeof(objArea->u16ID));
out.write((objArea->sAreaName.c_str()),sizeof(objArea->sAreaName));
out.write(reinterpret_cast<const char*>(objArea->nodesList),sizeof(objArea->nodesList));
return out;
}
//Creating input stream.
istream &operator>>( istream &in, AppAreaRecord *objArea){
ushort id;
string name;
string picName;
vector<ushort> nodes;
in.read(reinterpret_cast<char*>(objArea->u16RecordID),sizeof(objArea->u16RecordID));
in.read(reinterpret_cast<char*>(objArea->sAreaName),sizeof(objArea->sAreaName));
in.read(reinterpret_cast<char*>(objArea->nodesList),sizeof(objArea->nodesList));
return in;
}
//Function to load the existing data.
void loadAreas(){
Area *objArea;
ifstream in("areas.dat", ios::in | ios::binary);
in >> objArea;}
}
//Function to write the data to file.
void saveAreas() {
Area *objArea;
ofstream out("areas.dat", ios::out | ios::binary | ios::app);
out << objArea;}
Что я делаю не так?