编程要学的有参main函数之命令行参数杂谈

2022-03-28 0 1,012

1、软件main函数内部处理

2、终端命令行窗口传参

3、注册表相关传参

新手小白入门贴,大神请忽视跳过,如有不当之处,敬请谅解。

内部处理和其他函数相同,大家估计都很熟悉了,关于如何向程序传参可能有些迷惑。

我们向一个编译完成的程序传参,有三个形式,其实形式2有时可以说是形式1的简化操作。

形式1、通过命令行的终端传参。

形式2、把文件直接拖到程序图标时传参。

形式3、通过关联相应文件打开时传参。

一、软件main函数内部处理,先看一个标准的书写形式。

1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
int main(int argc,char *argv[])    //argv是指向字符数组的指针,argc是数组的大小。
{
    cout << "Hello World!" << endl;
    return 0;
}

argc(argument count)实参的数量,argv(argument vector/values)实参向量或者称为实参数值组。

此处的main函数的参数其实和其他普通函数的参数是没有区别的,只是其他函数的传递什么参数是程序员设计的,而此处是根据系统约定传参的。

默认argv[0]是程序名,程序名应该知道吧?不知道就去看看你运行的可执行的“××.exe”文件,其中的“××”就是程序名。

默认的程序名是固定的,约定俗成,知道就好,反正在软件处理这个阶段是不用它的。

数组里有多少参数看argc的大小,要处理的参数从argv[1]开始的,main函数的第二个函数是指向数组的指针,涉及的知识点是函数的参数不能是函数或者数组,所以这里使用了指针类型。

至于怎么处理,大家自由发挥吧,例如可验证argv[1]是否等于“fileName”,相等就打开一个文件,其他功能类似。

二、终端命令行窗口传参

我们先通过用记事本(notepad)打开一个readme.txt文件演示传参,注意事项:路径和文件名最好用英文,且都不含空格(有空格一般用“”号括住)。

win+r然后输入cmd打开命令行窗口,当然你也可以在开始菜单搜索cmd然后打开命令行窗口。

假定我们在目录C:Usersdzh2020里有个readme.txt

编程要学的有参main函数之命令行参数杂谈

其他传参也类似,第一个是软件的名称,必须是可执行文件(扩展名是exe或者类似文件)。后边的参数用单空格分开。因为记事本的第二个参数处理程序执行的是要打开的文件,所以我们输入文件名后,这个文件名就会传递给记事本软件内main函数的第二个参数,然后调用处理程序打开文件。

我们执行上面的命令行后,argc是2,argv[0]是notepad,argv[1]是readme.text。

我们在把一个文件拖动到能打开它的软件上时,传参的过程同上一样。

三、注册表相关传参

一个文件在双击后可以打开,是因为它关联了相应的软件,而这个关联信息保存在系统注册表HKEY_CLASSES_ROOT根键下的。

还以文本文档的readme.txt为例看它是如何关联的。

win+r然后输入regedit打开注册表。当然你也可以在C:Windows找到对应软件。

编程要学的有参main函数之命令行参数杂谈

编程要学的有参main函数之命令行参数杂谈

编程要学的有参main函数之命令行参数杂谈

通过以上找到信息,我们知道,当我们把一个文件关联到相应软件时,会生一个类似.txt和txtfile的项。扩展名可任意,扩展关联项名也任意,方便记忆即可。

当我们双击关联后的文档时,文档根据扩展名找到关联项的对应软件地址打开软件,并把文档的地址替换%1传参给软件。

这样我们得到的信息依然同命令行参数。argc是2,argv[0]是软件名,argv[1]是系统帮我们替换%1后的文档地址。

关于main函数的参数处理,很多时候传参对中文支持不好,还是建议英文传参。

我们在传参的时候如果有空格,需要用“”括起来,空格是个很特殊的值,很多软件在识别到空格默认已经读取完成,不会继续执行。

如果地址里有””,在软件读取时候也要做特殊处理,因为””在软件里有特殊含义(转义字符),一般它和不同的字符组合完成特定功能,例如n换行。所以我们在字符串里表示单斜杆””是这样的”\”。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

注:在使用本系统时,使用方必须在国家相关法律法规范围内并经过国家相关部门的授权许可,禁止用于一切非法行为。使用用途仅限于测试、实验、研究为目的,禁止用于一切商业运营,本团队不承担使用者在使用过程中的任何违法行为负责。

83源码 技术教程 编程要学的有参main函数之命令行参数杂谈 https://www.83ym.com/158.html

认准唯一TG:@ym830

常见问题
  • 站内所有资源,针对不同等级VIP会员可直接下载,特殊资源商品会注明是否免费,指会员所享有根据选择购买的会员选项所享有的特殊服务,具体以本站公布的服务内容为准。
查看详情
  • 按照我国的法律规定,运营网络棋牌首先需要成立一个注册正规备案的公司,然后申请网站备案、文网文、ICP等等,这些证件缺一不可。 一.注册公司 在当地工商进行注册,公司名称以“XX科技有限公司”为名,如:富裕棋牌经营范围填写“计算机软硬件、网络设备的设计开发与购销”。 二.域名及网站备案 在国内从事网站经营活动就必须经过相关部门的备案,因此棋牌运营商在购买了域名后,就要到当地网监局办理网站备案,或者请服务器提供商代为备案。 三.申请文网文 文网文全称为网络文化经营许可证,是从事经营性互联网文化活动所必需的资质。一般是需要到当地省一级(省、直辖市、自治区)的文化行政部门提出申请,并经由当地的文化行政部门合法批准。次资质要求申请公司注册资金必需达到1000万,并提供游戏版权证明文件。 四.申请ICP ICP又称为增值电信业务许可证,所有网络游戏运营商均需要办理ICP许可证,此证件要求公司注册资金1000万,需到当地市级通讯管理局办理。 五.申请文网游——游戏备案 根据《网络游戏管理暂行办法》(文化部第49号)的规定,国产网络游戏在上网运营之日起30日内应当按规定向国务院文化行政部门履行备案手续。 以上就是网络棋牌游戏正规运营所必需的资质证明。一般作为正规有实力的棋牌游戏开发公司,不光要具备所有的正规资质,而且会对投资者、代理商等合作伙伴给予相关指导和协助,与合作伙伴携手共赢!
查看详情

相关文章

猜你喜欢
官方客服团队

为您解决烦忧 - 24小时在线 专业服务