我在用qt,比方说我设计了一个类.
class F
{
QString str;
int a;
QDate date;
};
然后我的程序运作时需要一个这个类的数组,比方说
vector<F>v;
这么个数组.
现在我希望,我能把这个数组内的F对象的内容写到磁盘上,这样我下次还能再用这份数据.
但我总觉得自己的实现非常笨拙,我是把QDate类直接当作3个数字,QString当作一个字符串,用^
当作成员之间的分隔符,用换行符当作元素之间的分隔符,打印出一个文件...
感觉很笨拙,想问下有什么高明的手法吗?
我觉得你是在说对象的序列化和反序列化。序列化就是把对象转成字符流或字节流以便传输或存储,反序列化就是从数据里恢复对象。
在java里我们有专门的对象序列化接口,实现这个接口就可以将对象序列化成字节流写到文件里,然后也可以通过文件读取字节流再把它转成对象。
除了java特有的序列化,我觉得可能很多语言包括python和c++等都可以用json作为序列化方案,就是把对象写到json文件里面,这样也有助于在异构的程序间传递数据。json文件的格式很好理解,比如你的对象就可以写成
在json里表示列表可以用中括号[],比如表示一个你的对象的列表可以是
我觉得c++大概率是有json序列化和反序列化库的,可以试着找一下?