当前位置: 首页 > news >正文

wordpress悬浮刷新按钮/东莞seo网站优化排名

wordpress悬浮刷新按钮,东莞seo网站优化排名,西安到北京航班时刻表,网站建设收入1. 什么是命令行参数? 1.1 命令行参数(command-line arguments): 命令行参数就是写在命令之后的一些补充选项。命令和参数之间有空格隔开。格式一般是这样: command parameters执行程序时,可以从命令行传值给程序,它们对程序很重要,特别是…

1. 什么是命令行参数?

1.1 命令行参数(command-line arguments):

命令行参数就是写在命令之后的一些补充选项。命令和参数之间有空格隔开。格式一般是这样:

command parameters

执行程序时,可以从命令行传值给程序,它们对程序很重要,特别是当您想从外部控制程序时。

命令行参数是使用 main() 函数参数来处理的,其中,argc 是指传入参数的个数,argv[] 是一个指针数组,指向传递给程序的每个参数。下面是一个简单的实例,检查命令行是否有提供参数,并根据参数执行相应的动作:

// Qt 程序代码
#include <QtCore>
#define qout qDebug()
int main(int argc, char *argv[]) {for (int i = 0; i < argc; ++i) {qout << i << argv[i];}return 0;
}
执行:
使用cmd执行命令 : CommandLineParserDemo.exe hello world
结果如下:
在这里插入图片描述
  • argc : 字符串数组的大小
  • argv : 字符串数组
  • argv[0] 存储程序的名称
  • 多个命令行参数之间用空格分隔,但是如果参数本身带有空格,那么传递参数的时候应把参数放置在双引号 “hello world” 内部。

参考:
命令行参数的使用(讲解main函数的参数)_无聊星期三的博客-CSDN博客_命令行参数的使用

1.2 参数形式

参考:【Linux】1、命令行及命令参数 - 渐若窥宏大 - 博客园 (cnblogs.com)

带短横线的参数就叫做选项,具体可分为两种:

1.2.1 短名称选项

短名称选项形式就是一个短横线后接一个字母。格式例如:

command -a

如果我们要一次加好几个短参数,可以用空格隔开,例如:

command -a -b -c

多个短参数也可以合并在一起,例如上面的命令等价于:

command –abc

1.2.2 长名称选项(多个字母)

长名称选项是以两个短横线–开始的。格式例如:

command --parameter

如果有多个长参数-- 只能以空格隔开写,格式例如:

command --parameter1 --parameter2

1.2.3 选项的值

有一些选项我们还可以给它赋一个值,

  • 短参数赋值,通常是这样 command -p 10表示把 10 赋值给 p 参数。
  • 长参数赋值,一般是这样 command --parameter=10 也是表示把10 赋值给 p 参数。

看起来长参数的方式更加容易理解,但是不如短参数那么简洁。

2. Qt解析命令行

参考:
QT解析命令行(QCommandLineOption和QCommandLineParser类) - findumars - 博客园 (cnblogs.com)

QCoreApplication提供命令行参数作为简单的字符串列表。

// Qt 程序代码
#include <QtCore>
#define qout qDebug()int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);qout << a.arguments();
}
执行
使用cmd执行命令 : CommandLineParserDemo.exe hello world
结果如下:在这里插入图片描述

QCommandLineParser提供了定义选项,解析命令行参数、存储选项以及选项值的能力。

任何不是选项的参数(即不是以 - 开头)都存储为“位置参数”。解析器可以处理短名称选项,长名称选项,相同选项的多个名称以及选项值。

2.1 定义选项

命令行解析器会按照预先定义的选项去解析。

QcommandLineOption 类用来定义选项,QcommandLineParser 再添加选项,程序运行的时候再进行解析,比如:

#include <QtCore>
#define qout qDebug()int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QCommandLineOption op1("a");QCommandLineParser parser;parser.addOption(op1);parser.process(a);qDebug() << parser.isSet(op1);      // true
}
CommandLineParserDemo.exe -a
//如果使用了其它未配置的选项,则会报错,比如:
CommandLineParserDemo.exe -ab

2.2 定义带值的选项

QCommandLineOption设置了ValueName后,解析器就会认为此命令带值,将会认为后的word就是值。

但如果选项定义了值,命令行却没有为选项赋值,则会报错。

QCommandLineOption op1("a");
op1.setValueName("value");
qDebug() << parser.value(op1);   // “10”
CommandLineParserDemo.exe -a10 
CommandLineParserDemo.exe -a 10 CommandLineParserDemo.exe -a=10  
//短选项可以使用这3种赋值形式

另外选项值可以有多个:

QCommandLineOption op1("a"); 
op1.setValueName("value"); 
qDebug() << parser.values(op1);
CommandLineParserDemo.exe -a10 -a 20 -a=30 输出: ("10", "20", "30")

2.3 定义长名称带值的选项

#include <QtCore>
#define qout qDebug()int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QCommandLineOption op1("aa","","");op1.setValueName("value");QCommandLineParser parser;parser.addOption(op1);parser.process(a);qDebug() << parser.values(op1);
}
// 对于长名称,传选项和值的时候,使用两个短横线就行,赋值有2种方式 
CommandLineParserDemo.exe --aa 10 --aa=20

2.4 默认的-h -v 选项

关于–help 和 --version选项,Qt已经预先定义好了,可以直接使用方法即可。

int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QCommandLineParser parser;parser.addHelpOption();parser.addVersionOption();parser.process(a);
}
执行:
CommandLineParserDemo.exe -h
在这里插入图片描述
CommandLineParserDemo.exe -v 在这里插入图片描述

2.5 完善信息

但是打印出来的程序信息不够完善,需要另外设置程序的描述和版本。

#include <QtCore>
int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QCoreApplication::setApplicationName("这是应用程序名称");QCoreApplication::setApplicationVersion("1.0\nQt5.14.2 msvc2017_x86");QCommandLineParser parser;parser.setApplicationDescription("这是应用程序的描述");parser.addHelpOption();parser.addVersionOption();QCommandLineOption opt("a","这是有值选项的描述","value");parser.addOption(opt);QCommandLineOption opt2("b","这是无值选项的描述");parser.addOption(opt2);parser.process(a);
}
运行结果:
在这里插入图片描述

2.6 跑偏的参数

"positional argument"即Qt所谓的位置参数,解析器如果没有找到参数对应的选项,就把这些参数放到字符串列表中。

#include <QtCore>
int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QCommandLineParser parser;QCommandLineOption opt("a");opt.setValueName("value");parser.addOption(opt);parser.process(a);qDebug() << parser.values(opt);  // ("100")qDebug() << parser.positionalArguments();  // ("10", "20")
}
CommandLineParserDemo.exe -a100 10 20 
("100")
("10", "20")
http://www.jmfq.cn/news/5111749.html

相关文章:

  • 石家庄做网站比较好的公司有哪些/微软优化大师
  • 在网站让照片滚动怎么做/宁波seo在线优化哪家好
  • 海珠区有没有专门做网站的地方/seo优化公司
  • 泰安放心的企业建站公司/互联网营销师报名入口
  • wordpress 交友主题/关键词优化怎么优化
  • 定制包装需要多少钱/seo的作用
  • 白领兼职做网站/培训网站源码
  • 常见的手机网站/网络推广营销网站建设专家
  • 有没有小学生做兼职的网站/个人在百度上发广告怎么发
  • 岳阳网站建设制作/刷赞网站推广永久
  • 网站建设如何做用户名密码/全国新冠疫苗接种率
  • 呼和浩特市手机网站/最新收录查询
  • 手机网站规格/培训网站搭建
  • 深圳化妆品网站建设/推广渠道怎么写
  • 什么网站可以做章/百度电脑版官网
  • 东莞做网站企业铭/发帖子最好的几个网站
  • asp网站添加背景音乐/网页友情链接
  • 深圳网站建设哪家强/教育培训网站模板
  • java用哪种构架做网站/系统优化的例子
  • 做外贸怎么能上国外网站/网络宣传方案
  • 衡阳公司网站建设/seo诊断报告
  • 乌鲁木齐房地产网站建设/湖南疫情最新消息今天
  • 恶搞网站怎么做/郑州网站推广公司咨询
  • 建设银行网站能变更手机号吗/国际免费b站
  • wordpress中下载按钮/seo网站优化推荐
  • wordpress拖拽式建站主题/企业品牌推广网站
  • 做传单免费的网站/北京seo优化推广
  • 北京最大的网站开发公司/网络营销策略存在的问题
  • 装修平台是怎么找客户的/山东搜索引擎优化
  • 湖州市建设培训中心网站/优化网站打开速度