首页 > 编程语言 >cmdline---C++命令行解析库

cmdline---C++命令行解析库

时间:2024-03-25 14:25:34浏览次数:27  
标签:parser C++ --- cmdline add 参数 https 默认值

cmdline 项目托管地址:https://github.com/tanakh/cmdline

https://blog.51cto.com/u_15127663/4587654
https://www.cnblogs.com/ljbguanli/p/7235424.html

// include cmdline.h
#inclue <iostream>
#include "cmdline.h"

int main(int argc, char *argv[])
{
  // create a parser
  cmdline::parser a;

  // 第一个参数:长名称
  // 第二个参数:短名称
  // 第三个参数:参数描述
  // 第四个参数:bool值,表示该参数是否是必须存在,(可选,默认值false)
  // 第五个参数:参数的默认值,(可选,表示在第四个参数缺省下,对应参数的默认值)
  a.add<string>("host", 'h', "host name", true, "");

  // 第六个参数:限制参数的取值范围,
  a.add<int>("port", 'p', "port number", false, 80, cmdline::range(1, 65535));

  // cmdline::oneof() can restrict options.
  // cmdline::oneof() 用来限制参数的可选值,只能从限定的几个值中选取一个
  a.add<string>("type", 't', "protocol type", false, "http", cmdline::oneof<string>("http", "https", "ssh", "ftp"));

  // 通过调用不带类型的add方法,定义的bool值
  a.add("gzip", '\0', "gzip when transfer");

  // Run parser.
  // It returns only if command line arguments are valid.
  // If arguments are invalid, a parser output error msgs then exit program.
  // If help flag ('--help' or '-?') is specified, a parser output usage message then exit program.
  a.parse_check(argc, argv);

  // use flag values
  cout << a.get<string>("type") << "://"
       << a.get<string>("host") << ":"
       << a.get<int>("port") << endl;

  // boolean flags are referred by calling exist() method.
  if (a.exist("gzip")) cout << "gzip" << endl;
}

标签:parser,C++,---,cmdline,add,参数,https,默认值
From: https://www.cnblogs.com/xuekui-jin/p/18094273

相关文章

  • leedcode-丑数
    丑数就是只包含质因数2、3和5的正整数。换句话说丑数=2*……*2*3*……*3*5*……*5classSolution:defisUgly(self,n:int)->bool:#如果n小于等于0,则不是丑数,返回Falseifn<=0:returnFalse#如果n是......
  • SpringCloud(一.2)微服务远程调用 -- Feign
    通过RestTemplate实现远程调用后存在一些问题,如图:RestTemplate缺点:代码可读性差,编程体验不统一。参数复杂URL难以维护。 Fegin是一个声明式的http客户端(https://github.com/OpenFegin/fegin),其作用就是帮助我们优雅的实现http请求的发送,解决上面RestTemplate的痛点。 Feg......
  • C++循环结构(下)
    for循环语句作用:满足循环条件,执行循环语句语法:for(起始表达式;条件表达式;末尾循环体){循环语句}#include<iostream>usingnamespacestd;intmain(){ //从数字0打印到9 for(inti=0;i<10;i++){ cout<<i<<endl; } system("pause"); return0;}for循环语......
  • 瀚高数据库 select-sql常用函数
    瀚高数据库select-sql常用函数1、字符串拼接||语法string||string示例'post'||'gresql'--返回postgresql2、字符串的长度length()语法length(string)示例length('odoo')--返回43、模式匹配like语法stringlikepattern示例’abc’like’abc’--返回true’abc’li......
  • 互联网编程必读-有效的现代C++
    本书介绍    掌握C++11和C++14不仅仅是熟悉它们引入的特性(例如,自动类型声明、移动语义、lambda表达式和并发支持)。挑战在于学会有效地使用这些特性—这样你的软件才是正确的、高效的、可维护的和可移植的。这就是这本实用书的用武之地。它描述了如何使用C++11和C++14......
  • 查询你的网络适配器是否支持虚拟 Wi-Fi 热点功能,Hosted network"(托管网络),
    "Hostednetwork"(托管网络)是一种Windows操作系统中的功能,它允许你将计算机或设备转换为一个虚拟的Wi-Fi热点,使其他设备可以连接到该热点来共享网络连接。这项功能通常用于无线网络共享、临时网络搭建或者将有线网络连接转换为无线网络连接的情况。为什么托管网络功能会被设计......
  • Surface salinity 提取流程-以西安市隋大兴唐长安城遗址为例
    写在前面:   Surfacesalinity(地表盐度)是对Landsat8数据所进行的反演处理;鉴于考虑到高浓、高盐环境会提高土壤溶液的渗透压,从而引起地表植物生理性干旱,严重时可导致水分从植物根细胞外渗直接导致死亡,而植物死亡后的根系腐化会对夯土遗址造成不可逆的生物性破坏。其实本......
  • CSP-S 2023 题解
    T1听说有歧义?希卓没看懂。不过真的水。你看能把它拧成什么正确密码。#include<bits/stdc++.h>#defineLLlonglongusingnamespacestd;LLn,sum,a[10][6],p,b[10][6];LLf[100010];intmain(){ scanf("%lld",&n); for(inti=1;i<=n;i++) { for(intj=1;j<=5;j++)......
  • CSP-J 2023 题解
    T1这么水?!赛时AC。思路:小学数学题,我孙子都会做认真点。就是余数和商,小学二年级的知识(毕导:亻尔女子)代码:#include<bits/stdc++.h>#defineLLlonglongusingnamespacestd;LLn,sum;LLt(LLa){ if(a!=1)return1+t(a-((a-1)/3+1)); elsereturn1;}intmain(){......
  • leedocde-各位相加
    三个简单函数:classSolution:defaddDigits(self,num:int)->int:#如果数字已经是个位数,则直接返回ifnum<=9:returnnum#持续执行直到数字变成个位数为止whileTrue:#将数字转换为其各个......