C++ 三个嵌套对象,以C++;
我想将对象写入文件(*.txt)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
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的序列化库或其他方法。