Войти
ФлеймФорумПрограммирование

сохранение файла игры

#0
(Правка: 18:54) 18:52, 25 мар. 2019

Всем привет. Реализую сохранение игры для курсовой по С++.
Хотелось бы услышать мнение людей, в этом шарящих, советы, и если есть, полезные ссылки. значит есть класс LiveUnit, в котором есть все данные о юните, характеристики и т.д. Я написал функцию для загрузки из файла, но не уверен в ней.переменная string filename хранится в классе Saver

vector<LiveUnit*> Saver::UnitParser() {
  ifstream takeData(filename, ios::binary);
  vector<LiveUnit*> array;
  int x;
  takeData >> x;
  array.reserve(x);
  for (int i = 0; i < x; i++)
    takeData.read((char*)array[i], sizeof(LiveUnit));
  takeData.close();
  return array;
}


#1
19:04, 25 мар. 2019

Мож проще сериализацией? Ее ж придумали не зря..

#2
19:37, 25 мар. 2019

А память кто выделять будет?

#3
19:38, 25 мар. 2019

Нет, если ты попробуешь использовать такое для виртуальных классов, или протянуть указатель в свой класс - то они поплывут и ты получишь sigsegv. Загугли сериализацию или сохраняй/восстанавливай состояние сущности в структуре.

#4
20:01, 25 мар. 2019

Walter Sullivan
спасибо, но это не решает вопроса...

#5
(Правка: 20:50) 20:47, 25 мар. 2019

Если не хочется в сериализацию, то можно в xml. Например, посмотреть код tinyxml2 или подобные.

Если стоит задача самому написать, можно, но в простом виде это неудобно.

По коду.
vector array; лучше сделать членом класса, копировать весь массив по выходу из функции - это как-то не по плюсовски.

ФлеймФорумПрограммирование