-
-
[原创]编程要学的有参main函数之命令行参数杂谈
-
发表于: 2022-3-28 13:38 15039
-
1、软件main函数内部处理
2、终端命令行窗口传参
3、注册表相关传参
本帖于2022.03.28由duan首发,如有转载,请注明出处。
新手小白入门贴,大神请忽视跳过,如有不当之处,敬请谅解。
内部处理和其他函数相同,大家估计都很熟悉了,关于如何向程序传参可能有些迷惑。
我们向一个编译完成的程序传参,有三个形式,其实形式2有时可以说是形式1的简化操作。
形式1、通过命令行的终端传参。
形式2、把文件直接拖到程序图标时传参。
形式3、通过关联相应文件打开时传参。
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:\Users\dzh2020里有个readme.txt