类对象的C ++向量到文件\返回程序

时间:2012-05-22 12:31:10

标签: c++ xml-serialization

我期待在每次重启程序时都能使用我的数据。我很好奇这是存储到文件的最佳方式,而不是读回程序。我一直在网上读一些东西,最大的问题是XML还是二进制格式?我还在学习c ++我不掌握它。该程序的对象属于string int int类型...您使用哪种方式使用?为什么?

还有人知道这个to binaryto XML的好教程吗?

很抱歉找不到代码部分,但我想知道比我更高级程序员的一些意见。 :P

3 个答案:

答案 0 :(得分:3)

我不同意。有很多选择。还有两个我在这里给你起名字: 1)你可能会看到一个名为json的文件格式,它有一个自己的网站(我们有些人不这么做)。它声称是一种轻量级的数据交换格式。 2)有一种名为csv的文件格式。已经在stackoverflow here

上讨论了它的用法

答案 1 :(得分:3)

除了Matthais评论:

我认为最明显的格式是你的情况正确,这只是纯文本。

只需以纯文本(通常用空格分隔)序列化您的数据。 PT的优点在于它是人类可读的,人类可修改的,易于使用流处理(>>标记化或增强标记器)并且灵活且比XML轻得多。

例如,您可能希望存储

struct {
    std::string name;
    int age;
    double height;
};
你会写下:

John 21 5.4
Bill 31 4.9

或者你有什么。这总是很方便,例如名称可以包含两个单词:

John Smith

然后,tokeniser将在空格上拆分并尝试将smith解析为int,但这是使用分隔符修复的一个简单问题。如“”

答案 2 :(得分:2)

即使您的进程过早被杀死(例如由于断电,硬件故障或代码本身存在严重错误),您是否还需要强大的行为?

如果是这样,请考虑“嵌入式”数据库,例如SQLite或MS SQL Server Compact(等)。这些系统的事务性质应确保您不会最终导致数据损坏,从而阻止程序正常启动。

此外,某些文件系统支持事务(例如,Windows Vista或更高版本中的事务性NTFS)。