У меня есть приложение, в котором мне нужны некоторые данные для сохранения, поэтому я подумал о сериализации объектов. Я нашел хороший пример here. После этого, это то, что я придумал:Невозможно сериализовать и десериализовать стек строк в Qt/C++
std::stack <std::string> cards;
cards.push("King of Hearts");
std::ofstream ofs("<location>", std::ios::binary);
ofs.write((char *)&cards, sizeof(cards));
ofs.close();
Тогда я пытаюсь прочитать данные:
std::stack<std::string> inp;
std::ifstream ifs("<same_location>", std::ios::binary);
ifs.read((char *)&inp, sizeof(inp));
Однако приложение сбой в последней строке (по какой-то причине, из-за мои настройки Qt, я не могу отлаживать в настоящее время). Какая может быть возможная ошибка, и как я могу это исправить?
Вы не можете просто вывести произвольный класс в файл и прочитать его так и ожидать, что он будет работать. Самый безопасный способ - перебирать структуру данных и выводить один за другим. std :: stack не позволяет вам это делать, потому что это глупо. Вместо этого используйте std :: vector или std :: deque. –