【问题标题】:How I can read strings after specific character (like '=') from files?如何从文件中读取特定字符(如“=”)之后的字符串?
【发布时间】:2019-06-21 18:46:20
【问题描述】:

我有一个文件“config.ini”,我会在其中存储一些设置信息。

例如:

##CONFIG.INI##
#window-resolution = 1920x1080
#player-movement = 100
#appstate = state_menu

现在如何从文件中将“=”后的数据读取到变量中?我想我必须使用std::getline,但我不知道如何。

【问题讨论】:

  • 是 getline 以每行读取行,当 scanf 提取 '=' 后的单词(如果存在)时。不要害怕做和展示,做起来很简单......

标签: c++


【解决方案1】:

如何将“=”之后的数据从我的文件读取到我的变量中?

详细了解parsing 技术,尤其是recursive descent parsers。

确实,您应该阅读整行(例如,使用std::getline,或者甚至在Linux 上使用readline(3),如果配置是交互式的)然后在您所拥有的行上使用适当的解析技术。

考虑阅读Dragon Book 的前半部分。它应该对你有很大帮助。

您还可以找到一些免费软件库(如libconfig 和许多其他库)来解析配置文件。参见例如this相关问题。

您还可以使用解析器生成器,例如GNU bison(可能与flex 一起使用)或ANTLR。一旦您向他们提供了一些描述您的输入语言的注释语法,他们就会为您生成一些 C 或 C++ 代码。至少出于文档目的,您希望以 EBNF 表示法描述该输入语言(解释您的 config.ini 预期内容的内容)。

【讨论】:

    猜你喜欢
    • 2012-09-07
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多