添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

argc 是 argument count的缩写,表示传入main函数的参数个数;

argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个;

简单用法示例,新建工程键代码:

#include <iostream>
using namespace std;
void main(int argc,char *argv[])
	for(int i=0;i<argc;i++)
		cout<<"argument["<<i<<"] is: "<<argv[i]<<endl;
	system("pause");

argv是指向指针的指针,main函数的第二个参数“char *argv[]“也可以替换为 “char **argv“,两者是等价的。

在编译环境下按F5运行,输出如下:

可见,在没有参数传入的情况下,保存程序名称的第一个变量argv[0]依然存在。

传参数给main函数有两种方法,第一种方式是在编译环境中设置,以vs2012为例,右击项目—>属性—>配置属性—>调试—>命令参数,在命令参数中输入,每个参数之间用空格隔开。

之后点击确定并应用,运行之后显示如下:

第二种方式也是经常会用到的方式是通过命令提示符传入。首先需要打开命令提示符窗口,点击开始菜单在“搜索程序和文件”里输入命令“cmd”或者直接按快捷键 Windows+R,在弹出的对话框里输入“cmd”即可打开命令提示符窗口:

打开命令提示符窗口后需要输入生成的exe文件所在的完整路径,一个简便的方法是把exe文件直接拖入提示符窗口即可,之后输入传入参数,以空格分隔,之后回车,显示如下:

如果你坚持要手工输入完整路径的话,你会发现等你“Ctrl+C”路径后,在提示符窗口中按“Ctrl+V”却不能粘贴,这时候可以在窗口中右键单击一下试试,你会发现右键菜单里的粘贴功能还是有效的

下一个例子演示使用opencv显示一幅图片:

#include <iostream>
#include <core/core.hpp>
#include <highgui/highgui.hpp>
using namespace std;
using namespace cv;
void main(int argc,char **argv)
	Mat image=imread(argv[1]);
	imshow("Lena",image);
	waitKey();


注意读入的参数是argv[1],在命令提示符窗口运行:

最后说明一下:一般编译器默认使用argc和argv两个名称作为main函数的参数,但这两个参数如此命名并不是必须的,你可以使用任何符合C++语言命名规范的变量名作为入参,效果是一样的:

#include <iostream>
#include <core/core.hpp>
#include <highgui/highgui.hpp>
using namespace std;
using namespace cv;
void main(int value,char **point)
	for(int i=0;i<value;i++)
		cout<<"argument["<<i<<"] is: "<<point[i]<<endl;
	system("pause");
                    argc 是 argument count的缩写,表示传入main函数的参数个数;argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个;简单用法示例,新建工程键代码:#include using nam
				
C/C++语言main函数,经常带有参数argcargv,如下: 代码如下:int main(int argc, char** argv)这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进入到 hello.exe 文件所在目录) 运行命令为: 代码如下:hello.exe Shiqi Yu  下面的程序演示argcargv的使用: 代码如下:#include int main(int argc, char ** argv){ 
在示例程序经常可以看到argcargv这两个参数 ,在调试代码过程遇到main函数为int main( int argc, char* argv[] ) 这种类型时往往会报错,或者是运行起来了但命令窗口一闪而过,没有出来结果。网上关于这方面的资料也有点乱,在看浅墨大大一书发现其有关于这一方面的讲解甚为详细,抑制不住要与大家分享的冲动,现结合网上内容并予以实验,整理如下:
该篇文章主要是关于C++\C语言最基础的main函数参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助. 一.main()函数参数 通常我们在写主函数时都是void main()或int main() {..return 0;},但ANSI-C(美国国家标准协会,C的第一个标准ANSI发布)在C89/C99main()函数主要形式为: (1).int
那么argcargv[ ]是干什么用的呢? 其argc是外部输入的参数个数,argv[ ]是参数的字符串数组。光这么说大家可能不太明白,那我们来看一个示例,如下所示的C文件argtest.c #include <stdio.h> int ...
前提:C文件编译、汇编后生成的.exe文件,就可以通过命令行来执行该exe文件。 命令行执行.exe文件,用微软推出的powershell,格式是: start ***.exe 或者 start " ***.exe ",用powershell无法输入argv,总是执行不了。所以推荐使用windows自带的cmd。 用cmd执行.exe步骤: 1. 先找到.exe文件路径:不同的adk(我也不知道adk、编译器有什么区别,大佬别喷)生成的.exe文件位置不同,找一下就好。复制文件...
int main(int argc,char*argv[])是一个C/C++程序的主函数,它是程序的入口点。 - argc (argument count) 表示传递给程序的命令行参数的数量。它的值至少为1,因为第一个参数总是程序的名称。 - argv (argument vector) 是一个指针数组,用于存储传递给程序的命令行参数argv[0] 存储的是程序的名称, argv[1] 到 argv[argc-1] 存储的是其他参数。 这个函数通常是这样定义的: int main(int argc,char*argv[]){ //程序代码 return 0; 在函数体内执行程序的具体功能,最后 return 0 表示程序结束并正常退出。 weixin_56459510: 还是要收费的,去我百度网盘下载吧,链接:https://pan.baidu.com/s/1eMDQ3swLYfKNXWruLMm8Ng?pwd=uvom 提取码:uvom】下载的压缩包里面有两个文件夹 1、【NPOI.2.2.1】里面是最新的NOPI动态库的dll文件。 2、【SharpZipLib.0.86.0】里面是最新的【ICSharpCode.SharpZipLib.dll】文件 C#项目中操作Excel文件——使用NPOI库 weixin_56459510: 感谢主编给大家写的代码和文案,我个人有几个地方提出的: 1、【读取Excel文件数据】如果要操作xlsx即是07以上版本的excel你引用的【ICSharpCode.SharpZipLib.dll】文件版本要最新。 2、NPOI的dll文件版本也要最新的 以上的两种dll我的百度文库都有得免费下载,网上太多是要收费的csdn里面的下载也要收费,码姐姐的也要收费,下载我百度文库的吧! 【上面推荐的官网链接能下载,我试过了打不开的,大家要下载请到我的百度网盘下载,链接是:链接:https://pan.baidu.com/s/1eMDQ3swLYfKNXWruLMm8Ng?pwd=uvom 提取码:uvom】下载的压缩包里面有两个文件夹 1、【NPOI.2.2.1】里面是最新的NOPI动态库的dll文件。 2、【SharpZipLib.0.86.0】里面是最新的【ICSharpCode.SharpZipLib.dll】文件和 【SharpZipLib.Silverlight4.dll】文件 tensorflow中几种读取图片文件并显示方法 tttttttasd: read_file方法报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 87: invalid continuation byte怎么解? 基于对抗生成网络的图像去模糊 limingxiu_cc: 我也是这个问题请问解决了嘛? Opencv 张正友相机标定傻瓜教程 周周写代码: 在生成点云的时候会用到