我期待在每次重启程序时都能使用我的数据。我很好奇这是存储到文件的最佳方式,而不是读回程序。我一直在网上读一些东西,最大的问题是XML还是二进制格式?我还在学习c ++我不掌握它。该程序的对象属于string
int
int
类型...您使用哪种方式使用?为什么?
还有人知道这个to binary
或to XML
的好教程吗?
很抱歉找不到代码部分,但我想知道比我更高级程序员的一些意见。 :P
答案 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)。