天天看点

带参main函数 int main(int argc,char* argv[])详解:

int main(int argc,char* argv[])详解:

argc是命令行总的参数个数  

argv[]是argc个参数,其中第0个参数是程序的全名,以后是传入的参数  

命令行后面跟的用户输入的参数,比如:  

int main(int argc, char* argv[])  
   {  
     int i;  
     for(i = 0; i<argc; i++)  
     cout<<argv[i]<<endl;  
     cin>>i;  
     return 0;  
   } 
           

如果你执行时敲入:

   F:\D1.EXE   aaaa   bbb   ccc   ddd  

   输出如下:  

   F:\D1.EXE  

   aaaa  

   bbb  

   ccc  

   ddd  

-------------------------------------------------------------------- 因为平常我们使用windows较多,所以对带参的main函数不是很了解,但有些实际的项目需要读取程序启动时传入的参数,我们先看一下这些参数的关系:

char *argv[]是一个字符数组,其大小是int argc,主要用于命令行参数argv[]参数,数组里每个元素代表一个参数; 以windows为例:默认情况下程序启动时会将程序所在的绝对路径传给argv[0],也就是argc=1,如果有其他参数参入是,会argc++,依次放入argv[1]、argv[2]...,程序中只要判断argc是否大于1,便可以知道传入的参数个数,再读取argv[i]的内容即可。 比如:在windows中我们将文件直接拖入一个程序,那么argc=2,argv[0]为当前程序路径,argv[1]为拖入文件的文件名

PS:如果程序中实现了这个功能便是极好的,同时,在阅读其他资料(比如OpenCV)时我们也能够明白别人的程序的流程