Main():處理命令行選項
int main(int argc,char *argv[])是c++的裏面的main()函數的一種擴展原型
其中int argc 表示的是運行程序時命令行裏所帶參數的個數+1 (因爲包括了該程序名) ,如果不帶參數的話那就默認是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 這些參數是幹什麼的,那是在程序裏自己定義的