boost 分析命令行参数

[cpp] view plaincopy

 

  1. #include <boost/program_options.hpp>  
  2. #include <iostream>  
  3. #include <vector>  
  4. using namespace std;  
  5. using namespace  boost::program_options;  
  6. int main(int argc, char* argv[])  
  7. {  
  8.   string one ; // 外部变量 存储 参数one的值  
  9.   vector<string> mult;  
  10.   boost::program_options::options_description opts("test options");  
  11.   opts.add_options()  
  12.     ("help,h","help info")  
  13.     ("test1,t",value<string>(),"test aaa ")  
  14.     ("one,o",value<string>(&one)->default_value("one"),"test one default") // 默认值   
  15.     ("mult,m",value<vector<string> >(&mult)->multitoken(),"mult test"); //多个参数  
  16.   
  17.   variables_map vm;  
  18.   try  
  19.   {  
  20.     store(parse_command_line(argc,argv,opts),vm); // 分析参数  
  21.   }  
  22.   catch(boost::program_options::error_with_no_option_name &ex)  
  23.   {  
  24.     cout<<ex.what()<<endl;  
  25.   }  
  26.   
  27.   notify(vm); // 将解析的结果存储到外部变量  
  28.   if (vm.count("help"))  
  29.   {  
  30.     cout<<opts<<endl;  
  31.     return -1;  
  32.   }  
  33.   if(vm.count("test1"))  
  34.   {  
  35.    cout<<vm["test1"].as<string>()<<endl;  
  36.   }  
  37.     
  38.   cout<<one<<endl;  
  39.   cout<<mult.size()<<endl;  
  40.     
  41.   getchar();  
  42.   
  43.   return 0;  
  44. }  

[root@localhost test4]# g++ main.cpp  -l boost_program_options
[root@localhost test4]# ./a.out  -h
test options:
  -h [ --help ]           help info
  -t [ --test1 ] arg      test aaa 
  -o [ --one ] arg (=one) test one default
  -m [ --mult ] arg       mult test

[root@localhost test4]# ./a.out  -m f2 f3 f4 --test1 testbbbb
testbbbb
one
3

时间: 2024-09-27 23:29:30

boost 分析命令行参数的相关文章

如何分析命令行参数

如何分析命令行参数     GNU/Linux的命令行选项有两种类型:短选项和长选项,前者以 '-' 作为前导符,后者以 '--' 作为前导符.     比如有一个命令: $ myprog -a vv --add -b --file a.txt b.txt - -- -e c.txt     在GNU/Linux系统,对这种情况的一种合理解释是:     a是短选项,带一个参数vv:     add是长选项,无参数:     b是短选项,无参数:     file是长选项,带一个参数a.txt:

getopt() 对命令行参数进行分析

getopt() 对命令行参数进行分析 int getopt( int argc, char *const argv[], const char *optstring );         给定了命令参数的数量 (argc).指向这些参数的数组 (argv) 和选项字符串 (optstring) 后,getopt() 将返回第一个选项,并设置一些全局变量.使用相同的参数再次调用该函数时,它将返回下一个选项,并设置相应的全局变量.如果不再有识别到的选项,将返回 -1,此任务就完成了.可以重复调用

Arg_parser 1.7发布 命令行参数分析工具

Arg_parser 是一个命令行参数分析工具,遵循POSIX和GNU标准.它提供了现有的C++++和Chttp://www.aliyun.com/zixun/aggregation/18713.html">语言版本的参数分析,C++版本可以作为一个C++类,能够解析配置文件的选项:同时C语言版本实现了一个单一的结构加上相关的功能.其特点是简单易用,比'getopt_long'更安全. Arg_parser 1.7该版本主要是一些轻微错误的修正.GNU编码标准已更改为引号字符.配置选项&q

php 命令行参数详解及应用

命令行|详解 大家知道,php是一种PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页.当用户打开php页面时,服务端便执行PHP的命令并将执行结果发送至用户的浏览器中,这类似于ASP和CoildFusion,PHP可以运行在WINDOWS和多种版本的UNIX上.除了能够操作您的页面外,PHP还能发送HTTP的标题.您可以设置cookie,管理数字签名和重定向用户,而且它提供了极好的连通性到其它数据库(还有ODBC),集成各种外部库来做用PDF文档解析XML的任

PHP 命令行参数详解及应用_php技巧

复制代码 代码如下: # 不带参数的执行格式 php安装目录/bin/php scriptname.php # 带参数的执行格式 php安装目录/bin/php scriptname.php [参数1] [参数2] ..... 在scriptname.php通过$argv和$argc访问参数 # $argv(正式写法$_SERVER['argv'])数组保存着传递的全部参数,需要注意的是第一个参数$argv[0] / $_SERVER['argv'][0] 为执行脚本的名称如, scriptna

php命令行参数详解及应用PHP学习网

大家知道,php是一种PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页.当用户打开php页面时,服务端便执行PHP的命令并将执行结果发送至用户的浏览器中,这类似于ASP和CoildFusion,PHP可以运行在WINDOWS和多种版本的UNIX上.除了能够操作您的页面外,PHP还能发送HTTP的标题.您可以设置cookie,治理数字签名和重定向用户,而且它提供了极好的连通性到其它数据库(还有ODBC),集成各种外部库来做用PDF文档解析XML的任何事情.那你还

【原创】memcached 中的命令行参数解析

     本文主要是以 memcached 源码为例,讲解如何在 linux 下解析命令行参数.  安装 memcached 后,查看其可用选项:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [root@Be

Ghost命令行参数一览表

许多人都听说过或用过Norton Ghost这个软件,然而由于它的界面全是英文的,导致许多国内网友为此而头痛.下面以它的7.0版为例,提供了Ghost的命令行参数. /?或/H:查看帮助. -CLONE:克隆. -IA:对所有分区中的扇区进行映象. -ID:对整个磁盘(包括未分区空间)进行复制. -IR:和ID一样,但不将分区调整为扇区界限. -IB:只复制磁盘的启动扇区. -IAL:对LINUX分区进行整个复制,对其它分区则用正常方法. -OR:覆盖空间并进行完整性检查. -NOLILO:复制

如何获取其它程序的命令行参数

开发环境:VC6 Windows XP 测试环境:WindowsXP 我们都知道,在程序里获取命令行参数很简单,WinMain函数会以参数的形式传递给我们,或者可以调用API GetCommandLine 获取.但是GetCommandLine函数不接受参数,获取的只是自己程序的命令行参数.那么如果我们想获取别的应用程序的命令行参数应该怎么办呢? 有的同学说,既然GetCommandLine只能获取本程序的命令行参数,我们可以在其它进程里插入一个Dll,在那个进程的地址空间调用GetComman