Visual Studio .NET 2002Visual C++ 7.1Visual C++ 8.0Visual Studio 6Visual C++ 7.0Visual Studio .NET 2003Visual C++ 6.0MFC中级开发Visual StudioWindowsC++
ParamContainer - 易于使用的命令行参数解析器






2.06/5 (9投票s)
2004年8月26日
1分钟阅读

59489

874
ParamContainer 是一个简单易用的 C++ 类,用于解析命令行参数。参数格式源自 UNIX 的 getopt_long() 函数语法,但也可以包含嵌套参数。
引言
ParamContainer
是一个简单易用的 C++ 类,用于解析命令行参数。参数格式源自 UNIX getopt_long()
函数语法,但也可以包含嵌套参数。它被开发以满足我们项目的需求,但如果对其他人有用,我们将非常高兴。ParamContainer
的主要特性是
- 易于使用。
- 命令行结构符合对象层次结构。
- 添加/修改参数非常容易。您不需要修改类接口或与新参数对应的类之外的任何内容。
- 可以将参数保存到项目文件中,稍后加载。
- 当命令行包含额外的文件名时,它们的文件路径将在项目文件中转换为相对路径,因此您可以自由地将项目及其所有必需的文件移动到不同的位置。
ParamContainer
可以用作项目演示(GUI)和逻辑部分之间的内部接口。您可以在项目的图形/命令行版本中使用相同的逻辑部分。- 动态生成的帮助屏幕。
- 强大的错误处理。
- 在 Win32 和 Unix 系统之间的可移植性(在 Win32 系统上,必须定义
WIN32
预处理器定义)。
使用代码
以下是在您的项目中使用的 ParamContainer
的简单方法
- 将 ParamContainer.cpp 和 ParamContainer.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 日 - 第一个版本可用。