我有以下课程
class WriterCollection
{
std::vector<Writer> arts;
public:
WriterCollection(void);
~WriterCollection(void);
void DisplayMenu();
void AddWriter();
void EditWriter();
void ShowWriterList();
int SearchWriter(std::string name = "");
};
我试图将其保存在二进制文件中
所以我有
WriterCollection ac;
ac.AddWriter();
ac.AddWriter();
ac.AddWriter();
发生的情况是它要求我为每个 Writer 取一个名字,我还可以为每个 Writer 添加一个 Books 向量
我保存它:
std::ofstream output_file("db.data", std::ios::binary);
output_file.write((char*)&ac, sizeof(ac));
output_file.close();
当程序启动时,我尝试阅读它......
std::ifstream in( "db.data", std::ios::in );
if ( !in )
{
std::cerr << "File could not be opened." << std::endl;
}
in.read( reinterpret_cast< char * >( &ac ), sizeof( ac ) );
它正确地说,在我的集合中有一个包含 3 个元素的向量,但它无法告诉我这些元素的数据......
谁能帮我一把?