Я уверен, что это просто. Существует ли заданный заголовок для создания контекста справки в командной строке.
$ program --help
предоставит список различных вариантов помощи.
Что-то в этом роде...
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. Но для простых вещей это действительно не сложно сделать самому.
Самый простой способ сделать это в c++:
int main(int argc, char** argv)
{
if(argc == 2 && strcmp(argv[1], "--help")==0)
{..print help here..}
return 0;
}
Для C++ у вас есть Boost.Program_options
http://www.boost.org/doc/libs/1_55_0/doc/html/program_options.html
Но вам придется принести всю библиотеку boost (которая может быть утомительной, когда вы это сделаете в первый раз).
getopt_long - ваш друг. Для односимвольных опций getopt
будет достаточно.
Вы можете сделать это несколькими способами в зависимости от того, как вы хотите это сделать.
Вы можете использовать strcmp() и просто проанализировать argv [1]:
if(strcmp(argv[1],"--help") == 0)
или вы можете использовать getopt, если вы используете linux:
http://www.gnu.org/software/libc/manual/html_node/Getopt.html
Я думаю, вам стоит взглянуть на эту библиотеку: Getopt, которая является частью библиотеки GNU C. Это позволяет эффективно анализировать параметры -like
.
--help
это будет getopt_long()
: gnu.org/software/libc/manual/html_node/…