【问题标题】:C++ Command Line: Output program variable valueC++ 命令行:输出程序变量值
【发布时间】:2011-10-18 21:42:40
【问题描述】:

我正在为我的应用程序编写一个下拉控制台。假设我想使用以下命令输出变量myvar 的值:

]/get myvar

有没有比创建地图更好的方法,以便输出为

return mymap[argv[0]]; ?

换句话说,我可以将输入字符数组“myvar”关联到名为 myvar 的变量,而无需为程序中的所有变量手动执行吗?

【问题讨论】:

  • 你为什么要手动做任何事情? 所有您将因此暴露的变量将由容器动态管理。
  • 我没有得到这个问题...你能尝试更准确吗?下拉控制台和命令行参数有点不同...
  • 我知道,但是“如何”将用户输入的变量 char 数组与变量 selft 关联起来?
  • 我猜它与命令行更相关,我希望能够在我的程序运行时输出已经存在于我的程序中的变量的值。所以我使用下拉控制台并输入 /get myvar。但是输入只是一个char数组,如何将它与名为myvar的变量关联起来
  • @Smash?什么?您想将输入用作变量名并将变量定义为文件名(argv[0])吗?

标签: c++ command-line variable-assignment introspection


【解决方案1】:

简答:

没有。

长答案:

噗,没办法!将您的一段代码构建为二进制文件后,就没有变量名之类的东西了。只是一些指针、栈上的值等等……

如果您想实现这样的功能,我建议您使用脚本库(例如Lua),并手动映射一些变量,以便您可以通过脚本读取/更改这些变量。在这种情况下,控制台输入基本上就是您提供给脚本引擎的内容。

This might be a good reference.

更新:

其实刚刚找到了名为Lua Console的项目。
好像不再维护了,但不代表不行。

【讨论】:

  • 谢谢,但我会坚持使用 C++,只需为所有可能对 DX 有用的变量创建 std::map 的麻烦
  • @Smash:100 美元,你做错了。好的设计应该很少让人感到痛苦。
  • 也许吧,不过不用担心,毕竟真的没有那么痛苦,只是没有想象中那么令人满意
猜你喜欢
  • 1970-01-01
  • 2012-08-30
  • 2019-11-04
  • 1970-01-01
  • 2022-09-27
  • 2010-10-06
  • 2022-06-23
  • 2018-02-02
  • 2022-01-24
相关资源
最近更新 更多