命令行參數是使用main()函數參數來處理的,其中,argc是指傳入參數的個數,argv[]是一個指針數組,指向傳遞給程序的每個參數。
應當指出的是,argv[0]存儲程序的名稱,argv[1]是一個指向第一個命令行參數的指針,*argv[n]是最后一個參數。如果沒有提供任何參數,argc 將為1,否則,如果傳遞了一個參數,argc將被設置為2。
多個命令行參數之間用空格分隔,但是如果參數本身帶有空格,那么傳遞參數的時候應把參數放置在雙引號或單引號內部。
1 #include <stdio.h> 2 3 int main(int argc, char *argv[]) { 4 if (argc == 2) { 5 printf("The argument supplied is %s\n", argv[1]); 6 } else if (argc > 2) { 7 printf("Too many arguments supplied.\n"); 8 } else { 9 printf("One argument expected.\n"); 10 } 11 }
Result
[xxxxx]$ ./Test.o One argument expected. [xxxxx]$ ./Test.o a The argument supplied is a [xxxxx]$ ./Test.o a b Too many arguments supplied. [xxxxx]$ ./Test.o "a b" The argument supplied is a b
