如何在c / c ++中的命令行程序中创建--help选项?

时间:2013-11-19 15:50:10

标签: c++ c command-line-interface

我很确定这很简单。是否有预定义的标头用于在命令行程序中创建帮助上下文。

$ program --help

将提供各种帮助选项的列表。

6 个答案:

答案 0 :(得分:2)

在c ++中执行此操作的最简单方法是:

int main(int argc, char** argv)
{
    if(argc == 2 && strcmp(argv[1], "--help")==0)
    {..print help here..}
    return 0;
}

答案 1 :(得分:2)

这些方面的东西......

int main(int argc, char* argv[])
{
    std::vector<std::string> cmdLineArgs(argv, argv+argc);

    for(auto& arg : cmdLineArgs)
    {
        if(arg == "--help" || arg == "-help")
        {
            std::cout << "Helpful stuff here\n";
        }
        else if(arg == "whatever")
        {
            std::cout << "whatever?!\n";
        }
    }
}

当然,有些库可以处理cmd行参数。但对于简单的事情,你自己并不难。

答案 2 :(得分:1)

对于C ++,您有Boost.Program_options

http://www.boost.org/doc/libs/1_55_0/doc/html/program_options.html

但是你必须带上整个升级库(第一次这样做时可能很乏味)。

答案 3 :(得分:0)

我认为你应该看一下这个库:Getopt,它是GNU C库的一部分。它允许您有效地解析-like个参数。

答案 4 :(得分:0)

你可以采取多种方式,具体取决于你想要的方式。

您可以使用strcmp()并解析argv [1]:

if(strcmp(argv[1],"--help") == 0)

或者如果你正在运行linux,你可以使用getopt:

http://www.gnu.org/software/libc/manual/html_node/Getopt.html

答案 5 :(得分:0)

getopt_long是你的朋友。 对于单字符选项,getopt就足够了。