65.9K
CodeProject 正在变化。 阅读更多。
Home

ParamContainer - 易于使用的命令行参数解析器

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.06/5 (9投票s)

2004年8月26日

1分钟阅读

viewsIcon

59489

downloadIcon

874

ParamContainer 是一个简单易用的 C++ 类,用于解析命令行参数。参数格式源自 UNIX 的 getopt_long() 函数语法,但也可以包含嵌套参数。

引言

ParamContainer 是一个简单易用的 C++ 类,用于解析命令行参数。参数格式源自 UNIX getopt_long() 函数语法,但也可以包含嵌套参数。它被开发以满足我们项目的需求,但如果对其他人有用,我们将非常高兴。ParamContainer 的主要特性是

  • 易于使用。
  • 命令行结构符合对象层次结构。
  • 添加/修改参数非常容易。您不需要修改类接口或与新参数对应的类之外的任何内容。
  • 可以将参数保存到项目文件中,稍后加载。
  • 当命令行包含额外的文件名时,它们的文件路径将在项目文件中转换为相对路径,因此您可以自由地将项目及其所有必需的文件移动到不同的位置。
  • ParamContainer 可以用作项目演示(GUI)和逻辑部分之间的内部接口。您可以在项目的图形/命令行版本中使用相同的逻辑部分。
  • 动态生成的帮助屏幕。
  • 强大的错误处理。
  • 在 Win32 和 Unix 系统之间的可移植性(在 Win32 系统上,必须定义 WIN32 预处理器定义)。

使用代码

以下是在您的项目中使用的 ParamContainer 的简单方法

  • ParamContainer.cppParamContainer.h 添加到您的项目中。
  • 在您的主 CPP 文件中包含 ParamContainer.h
    #include "ParamContainer.h"
  • 在您的 main() 函数中创建 ParamContainer 对象。
    ParamContainer p;
  • 使用 addParam() 添加一些参数。
    p.addParam("long-name", 'n', ParamContainer::regular, 
               "parameter description", "default_value");  
    
    //"long-name" - long parameter name
    //'n' - short parameter name
    //ParamContainer::regular - parameter type 
    // (regular means that parameter is not required and has an argument)
    //"parameter description" - description
    //"default_value" - default value
  • 调用 parseCommandLine()
    p.parseCommandLine(argc, argv[]);
  • 通过 [] 获取参数值。
    cout << p["long-name"];
  • 编译并运行您的程序,指定您的参数
            programname --long-name=value

            programname -n value

            programname -n "value"

历史

2004 年 8 月 25 日 - 第一个版本可用。

BioRainbow 团队.

© . All rights reserved.