c++命令行解析

2023-11-02

 发现一个项目中可以用的c++的命令行解析器封装-cmdline

下载地址:

GitHub - tanakh/cmdline: A Command Line Parser

c++的命令行解析。只有一个.h文件,可直接加入项目

当然Qt有自己的命令行解析类QCommandLineParser

下面的用法解析来自 cmdline(命令行)参数解析库_YoungYangD的博客-CSDN博客

#include "cmdline.h"
int main(int argc, char *argv[])
{
	//1、首先创建一个命令行解析器
	cmdline::parser a;
	
	//2、制定输入参数和限制条件
	//有几种用法我们一一介绍
	
	//第一个参数:长名字
	//第二个参数:短名字
	//第三个参数:参数描述
	//第四个参数:bool值,该参数是否必须存在
	//第五个参数:默认值
	a.add<string>("host", ‘h‘, "host name", true, "");
	
	//第六个参数:用来对参数加入额外的限制
	//这里端口号被限制为必须是1到65535区间的值,通过cmdline::range(1,65535)进行限制
	a.add<int>("port",'p',"port number",false,80,cmdline::range(1,65535));
	
	//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 .....");
	
	//3、传入命令行,进行分析,不符合时输出信息,退出程序。
	a.parse_check(argc,argv);
	//只有全部的参数符合上面制定的标准才可往下执行
	//假设输入--help 或者 -? 这种程序也会退出,但是输出的是帮助信息

	//4、获取输入的参数值
	auto type = a.get<string>("type");
	auto host = a.get<string>("host");
	auto port = a.get<int>("port");
	//bool 值通过调用exsit()方法来判断
	bool isexist =  a.exist("gzip");
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++命令行解析 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • quilleditor 字体大小设置_vue-quill-editor如何设置字体默认大小?

    集众家之言后 我采用以下方式初步实现了设置默认字体大小 1 全局引入以下内容 完成自定义字号的注册 import as Quill from quill let fontSizeStyle Quill import attributors
  • shell中调用mysql的sql命令脚本,如何执行sql语句

    shell中调用mysql的sql命令脚本 第一步 套用下列模板 bin bash database idm 数据库实例 host 10 200 10 255 数据库地址 port 3306 数据库端口 account test 数据库用户
  • 通过CSIG—走进合合信息探讨生成式AI及文档图像处理的前景和价值

    一 前言 最近有幸参加了由中国图象图形学学会 CSIG 主办 合合信息 CSIG文档图像分析与识别专业委员会联合承办的 CSIG企业行 走进合合信息 的分享会 这次活动以 图文智能处理与多场景应用技术展望 为主题 聚焦图像文档处理中的结构建
  • 为你详解Linux安装GCC方法

    下载 http ftp gnu org gnu gcc gcc 4 5 1 gcc 4 5 1 tar bz2 浏览 http ftp gnu org gnu gcc gcc 4 5 1 查看Changes http gcc gnu org
  • JVM知识总结

    JVM知识点总结 什么是jvm jvm就是java虚拟机 本质上是一个程序虚拟机 所以我们首先得搞懂什么是虚拟机 虚拟机是在操作系统上层的一款软件 分为程序虚拟机和系统虚拟机 程序虚拟机就是用于执行程序的 系统虚拟机可以用于模拟一台物理设备
  • 深度学习的基础知识与问题汇总

    20200813 引言 这里记录一下深度学习使用过程中的一些细节的地方 多分类时 预测过程 损失函数为Nan或者Inf 如何在keras中计算精确率和召回率 如何获取中间某一层的输出 如何获取网络结构 从别人的存储的h5模型文件中 关于so
  • VSCode设置git-bash终端,显示分支名(未解决)

    学习时发现我的终端不能像老师的这样显示分支名 解决方法如下 设置git bash终端 file gt preferences gt settings 搜索window 编辑settings json 添加以下内容 这里出现了一个问题 我直接
  • AD22如何添加元器件库

    1 打开libPkg项目 2 编译 3 查看添加好的库 4 查看添加好的库 当然 如果你手上有IntLib文件 已经编译好的库 可以直接点击install 进行安装 比如从这个地方去下载 1 Other Installers User Ma
  • no such file or directory, scandir ‘xxxxxnode_modules/node-sass/vendor‘

    Syntax Error Error ENOENT no such file or directory scandir xxxxx node modules node sass vendor 一 报错信息 Syntax Error Erro
  • Redis+Mysql模式和内存+硬盘模式的异同

    学习任何新知识 都是一个循序渐进的过程 从刚开始的懵懂无知 到简单熟悉 然后突然的彻悟 成果让人欣喜若狂 心情也会快乐很久 redis mysql和内存 硬盘类似的地方 首先看图 首先 我们知道 mysql是持久化存储 存放在磁盘里面 检索
  • Latex:图片、表格占据双栏排版的两栏时 的位置控制

    目录 1 问题 怎么在双栏排版中 让占据两栏的表格出现在页面顶端 2 解决 在latex中加入 usepackage stfloats 即可 1 图片 占据两栏显示在页面顶端 2 表格 占据两栏显示在页面顶端 1 问题 怎么在双栏排版中 让
  • CMake buildsystem

    官方文档 https cmake org cmake help latest manual cmake buildsystem 7 html 介绍 基于CMake的构建系统 buildsystem 其组织形式是一组高级逻辑目标 high l
  • LR1语法分析C++实现:一、项目集簇的生成

    转载请注明出处 https blog csdn net hhhhhhhhhhkkkkkkkkkk 嗯 先上代码 后面慢慢写注释 我好像太鸡智 贼 了 哈哈 生成项目集簇 基本符号的定义与相关操作 using t sym int 符号 usi
  • 第十一届蓝桥杯(国赛)——质数行者

    问题描述 小蓝在玩一个叫质数行者的游戏 游戏在一个 n m w n m w n m w 的立体方格图上进行 从北到南依次标号为第 1
  • C++编程用梯形法求积分

    这是我们学校oj的作业可以看看 include
  • 一图抵千言:带你了解最直观的神经网络架构可视化

    一张好的图抵得上一千个等式 神经网络是复杂 多维 非线性的数组运算 如何在避免过于复杂或重复的情况下呈现深度学习模型架构的重要特征呢 又该以何种方式清晰直观 启发性地呈现它们呢 好看也是加分项 无论研究还是教学项目对此都没有固定标准 本文我
  • Redis3.0集群完全版(数据迁移问题)

    Redis3 0集群安装手册 一 概述 要让集群正常工作至少需要3个主节点 在这里我们要创建6个Redis节点 其中三个为主节点 三个为从节点 对应的redis节点的ip和端口对应关系如下 127 0 0 1 7000127 0 0 1 7
  • 图说三极管,太容易懂了!(史上最详细版本)

    晶体三极管 是半导体基本元器件之一 具有电流放大作用 是电子电路的核心元件 在电子元件家族中 三极管属于半导体主动元件中的分立元件 广义上 三极管有多种 常见如下图所示 狭义上 三极管指双极型三极管 是最基础最通用的三极管 本文所述的是狭义
  • 阻止Mac版 Adobe Acrobat Pro DC的顽固的自动更新

    阻止Mac版 Adobe Acrobat Pro DC的顽固的自动更新 方案一 无效 方案二 无效 方案三 无效 方案四 验证了一年 应该有效 在mac上安装强大的Adobe Acrobat Pro DC之后 你会发现使用AZii破解之后过
  • c++命令行解析

    发现一个项目中可以用的c 的命令行解析器封装 cmdline 下载地址 GitHub tanakh cmdline A Command Line Parser c 的命令行解析 只有一个 h文件 可直接加入项目 当然Qt有自己的命令行解析类