Main():處理命令行選項

Main():處理命令行選項
int   main(int   argc,char   *argv[])c++的裏面的main()函數的一種擴展原型 
其中int argc   表示的是運行程序時命令行裏所帶參數的個數+1 (因爲包括了該程序名) ,如果不帶參數的話那就默認是
  char *argv[]
參數是字符數組的指針,也可以用char **argv表示 ,不過嚴格來講是不一樣的。  
 
前者是指向字符指針的數組,後者是指向字符指針的指針。由於c裏面沒有真正的數組,是用指向一個數值的系列的指針來表達數組的,所以上面的兩種表示差不多。不過char   **   實際上有二義性,可能是一個char*   的指針或char   *的數組的指針。所以char*   argv[]   就要明確一些。
argv[]裏面的內容就是參數的內容。如果不帶參數的話那argv[0]就是程序的路徑名
請看下面兩個例子(兩個都是一個意思,一個是C版,一個是C++版)
/////////////////////////////////C++/////////////////////////////////////   
#include   <iostream.h>  
int   main(int   argc,char   *argv[])  
{  
       cout<<"argc=   "<<argc<<endl;  
       for(int   i=0;i<argc;i++)  
       {  
             cout<<"argv["<<i<<"]="<<argv[i]<<endl;  
       }  
   
    return   0;  
  }
/////////////////////////////////C/////////////////////////////////////   
#include <stdio.h>  
main(int   argc,char   *argv[])
{  
    int i;
    printf("argc=%d/n",argc);
    for( i=0;i<argc;i++)
    printf("argv[%d]=%s/n",i,argv[i]);//
    getch();  
}
編譯後程序的名字叫Program.exe,E盤根目錄下,運行時,顯示的結果是如下圖
E:/program(回車)
Argc=1
Argv[0]=E:/PROGRAM.EXE
E:/program aa bb cc(回車)
Argc=4
Argv[0]=E:/PROGRAM.EXE
Argv[1]=aa
Argv[2]=bb
Argv[3]=cc
至於aa bb cc 這些參數是幹什麼的,那是在程序裏自己定義的
發佈了28 篇原創文章 · 獲贊 11 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章