C++ 是否有一些常用的方法来写入和读取配置文件?

C++ 是否有一些常用的方法来写入和读取配置文件?,c++,configuration,configuration-files,C++,Configuration,Configuration Files,我需要我的程序创建和编辑一个配置文件,其中包含关于对象集的信息,然后在每次执行时读取它。是否有一些配置风格的指南可以使用 我在Windows上使用C++。 最常见的格式是格式。大多数mdoern语言都应该内置一些东西来处理这些问题,否则我相信您可以找到第三方库 如果做不到这一点,您可以使用XML,如果您的语言支持XML,则可以对这些XML文件进行序列化和反序列化。如果您不想/不能使用XML,大多数语言都会使用默认格式,例如对象中的纯二进制数据转储。是创建配置文件的非常流行的解决方案。例如,Rub

我需要我的程序创建和编辑一个配置文件,其中包含关于对象集的信息,然后在每次执行时读取它。是否有一些配置风格的指南可以使用


<>我在Windows上使用C++。

最常见的格式是格式。大多数mdoern语言都应该内置一些东西来处理这些问题,否则我相信您可以找到第三方库


如果做不到这一点,您可以使用XML,如果您的语言支持XML,则可以对这些XML文件进行序列化和反序列化。如果您不想/不能使用XML,大多数语言都会使用默认格式,例如对象中的纯二进制数据转储。

是创建配置文件的非常流行的解决方案。例如,RubyonRails和GoogleAppengine就突出地使用了它。YAML库可用于多种语言(如果不是大多数语言的话)。

在Java世界中,属性文件非常易于使用: Properties类表示一组持久的属性。属性可以保存到流中,也可以从流中加载。属性列表中的每个键及其对应的值都是一个字符串


正如其他人所说,您需要描述您的环境以获得最佳推荐

这在很大程度上取决于语言、平台和配置文件的范围。例如,Java世界中有一个用于配置的示例,以及这里已经提到的其他示例,如YAML

XML通常不适合用于配置,因为它非常冗长。您仍然可以在许多应用程序、Web框架等中找到它

我认为最好的做法是为手头的工作选择正确的配置格式。您可以自己评估和尝试,同时考虑以下要点:

  • 标准是什么?(例如Windows中的ini文件、Java中的属性文件)
  • 我的语言中是否有本机支持,或者我是否必须推出自己的实现
  • 我的配置格式能否轻松描述我要存储为配置的内容
  • 我相信你可以考虑其他因素。如果你更新你的问题以澄清范围,你会得到更多有用的答案。

    我建议你离开

    属性树库提供了一种数据结构,用于存储任意深度嵌套的值树,并通过某个键在每个级别建立索引。树的每个节点都存储自己的值,以及其子节点及其键的有序列表。树允许通过路径轻松访问其任何节点,路径是多个键的串联

    此外,它还包含XML、INI和JSON的解析器和生成器,因此您可以按照自己选择的格式保存/加载。

    如果您正在使用Qt(基于其他问题)


    看看QSettings类。我一直在使用这些设置许多持久性信息,例如上次访问的目录,以及上次使用的选项。

    boost::program\u options具有读取ini文件的能力

    很好的是,它允许统一读取ini文件和命令行选项。随着Windows程序的发展,这可能不会被视为一个相互考验的未来,但对于我的unix应用程序来说,它是一个杀手级功能


    但是,boost::po不允许编辑或写入ini文件,因此使用boost::property_tree可能会更好。

    有一个免费的跨平台配置文件管理库,名为libconfig。它支持非常好的基于Yaml的语法,也支持用户定义的语法。它还具有许多其他计算语言绑定。查看主页:。

    您希望存储什么语言和内容,字符串或转储真实对象,如gui元素、结构复杂的对象等?这是10年前最常见的。事情发生了一点变化。XML、YAML和JSON是现在的发展方向。