如何将C++中的结构内容写入文本文件?我想要做的是,比如我有一个名为A的结构,数据成员是A.one,A.two等等,我想逐行将它们写成文本文件,就像这样
结构A
A.one =值
A.two =值...
结构B
B.one =值
B.two =值
基本上我想要转储..有一个简单的方法来做到这一点?什么是最好的I/O方法?CFile的?iostream的?谢谢..是否有更简单的方法来转储类的成员数据的所有值?
编辑:废话,谢谢你们..
在C++中没有反射,所以你必须手动完成,例如(使用iostream,为了简单):
dump_A(std::cout, "A", a); void dump_A(std::iostream& os, const char* name, A const& a) { os << "Structure " << name << '\n' << name << ".one = " << a.one << '\n' << name << ".two = " << a.two << '\n'; }
C++不是内省的.也就是说,它对结构的内容一无所知.您必须使用某种手动注释或反射系统来执行此操作.
当然,如果您对结构的硬编码信息没有问题,可以使用任何I/O方法转储信息.
例如:
struct A { int member1; char member2; }; void PrintA (const A& a) { std::printf ("member1: %d\n", a.member1); std::printf ("member2: %c\n", b.member2); }
正如您所看到的,这是繁琐的,因为它需要对结构有深入了解,并且如果结构发生变化则不会自动更新.但是,反射系统"正常"执行此操作的开销可能是一个缺点,特别是如果您正在学习.