C++ 三个嵌套对象,以C++;

C++ 三个嵌套对象,以C++;,c++,fstream,streamwriter,filewriter,writefile,C++,Fstream,Streamwriter,Filewriter,Writefile,我想将对象写入文件(*.txt) class MyCircle{ double x; double y; double radius; char index; int check;} class Question{ int index; int quantityOfAnswers; MyCircle [] arrCircles; char solution;} class a

我想将对象写入文件(*.txt)

class MyCircle{
      double x; 
      double y; 
      double radius;
      char index; 
      int check;}

class Question{
      int index;
      int quantityOfAnswers; 
      MyCircle [] arrCircles; 
      char solution;}

class answersShee{
    int answersSheetID;
    string answersSheetName;
    int quantityOfCandidateID; 
    int quantityOfCodeExamination;
    int quantityOfQuestion;
    Question arrCandidateIDs[quantityOfCandidateID];
    Question arrCodeExaminations[quantityOfCodeExamination]; 
    Question arrQuestions[quantityOfQuestion];}

我想把文件和类的答案写在文件(*.txt)上,但是C++中没有像java那样编写一个对象:(

我真的不明白。在因特网上存在很多解决方案。搜索C++对象序列化。< /P> 文件中的二进制或文本表示。 在开始将对象写入文件之前,需要确定是编写二进制表示还是文本表示

二进制表示反映了平台表示的位和字节。数字和其他结构在文本编辑器中查看时可能不容易读取。这通常是最有效但最不易移植的解决方案。指针做得不好,多字节整数也不行(研究“endian”或“little endian”).可变长度字段要求二进制字段具有更多结构(例如长度字段或sentinel值)

文本表示是人类可读的形式。文本形式更便于移植,更易于人类阅读。此形式的读写速度较慢(由于与文本格式的转换)。此外,指针值不使用此格式(除非使用数字链接值)

将文本表示写入文件。 互联网上有太多的例子。我将总结并说,这种功能通常涉及重载
操作符
。这意味着向类和结构中添加功能(或者可以创建一个独立的函数)

序列化库 很多人使用这些。我不能推荐或不推荐这些,因为我没有使用过它们。总之,这些库简化了从文件到文件的对象读写

写入二进制格式 同样,这需要向类和结构中添加功能(或创建独立的函数)。我喜欢扩展使用
std::istream::read
std::ostream::write
方法的典型情况

我使用的技巧是:
1.询问每个对象缓冲区中该对象将占用的大小,并求和值。
1.1.这是递归的,每个对象都会向每个成员询问其大小。
2.为大小分配
uint8\t
缓冲区。
3.将指向缓冲区的指针传递给每个对象,并告诉每个对象在缓冲区指针指向的位置写入其内容(对象将相应地递增指针)。
4.使用二进制翻译将缓冲区作为一个大数据块写入文件。

5.阅读内容相似,顺序不同。

您的问题表明缺乏研究或尝试。请查看boost的序列化库或其他方法。