我期待在每次重新启动程序时使我的数据可用。我很好奇哪种方式是存储到文件而不是读回程序的最佳方式。我一直在网上阅读一些东西,最大的问题是 XML 还是二进制格式?我还在学习 c++ 我不掌握它。该程序的对象是类型string
int
int
......你建议我使用哪种方式,为什么?
还有一件事,有人知道这方面的好教程吗to binary
?to XML
很抱歉缺少代码部分,但我想知道比我更高级的程序员的一些意见。:P
我期待在每次重新启动程序时使我的数据可用。我很好奇哪种方式是存储到文件而不是读回程序的最佳方式。我一直在网上阅读一些东西,最大的问题是 XML 还是二进制格式?我还在学习 c++ 我不掌握它。该程序的对象是类型string
int
int
......你建议我使用哪种方式,为什么?
还有一件事,有人知道这方面的好教程吗to binary
?to XML
很抱歉缺少代码部分,但我想知道比我更高级的程序员的一些意见。:P
除了马泰斯评论:
我认为最明显的格式在您的情况下是正确的,那只是纯文本。
只需以纯文本(通常由空格分隔)序列化您的数据。PT 的好处是它是人类可读的、人类可修改的、易于使用流(>> 标记化或增强标记化器)进行处理、灵活且比 XML 轻得多。
例如,您可能想要存储
struct {
std::string name;
int age;
double height;
};
你会写:
John 21 5.4
Bill 31 4.9
或者你有什么。这总是很方便的,例如 name 可以包含两个单词,所以:
John Smith
并且标记器会在空格上拆分并尝试将 smith 解析为 int ,但使用分隔符解决这个问题很容易。如 ””
即使您的进程被过早地终止(例如由于断电、硬件故障或代码本身的严重错误),您是否需要稳健的行为?
如果是这样,请考虑使用“嵌入式”数据库,例如 SQLite 或 MS SQL Server Compact(等)。这些系统的事务性质应确保您最终不会收到损坏的数据,这会阻止您的程序正确启动。
此外,某些文件系统支持事务(例如 Windows Vista 或更高版本中的事务性 NTFS)。