命令行參數是使用 main() 函數參數來處理的,其中,argc 是指傳入參數的個數,argv[] 是一個指針數組,指向傳遞給程序的每一個參數。編程
下面是一個簡單的實例,檢查命令行是否有提供參數,並根據參數執行相應的動做:數組
#include <stdio.h> int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s/n", argv[1]); } 函數
else if( argc > 2 ) 學習
{ printf("Too many arguments supplied./n"); } else { printf("One argument expected./n"); } }編碼
使用一個參數,編譯並執行上面的代碼,它會產生下列結果:spa
$./a.out testing The argument supplied is testing命令行
使用兩個參數,編譯並執行上面的代碼,它會產生下列結果:3d
$./a.out testing1 testing2 Too many arguments supplied.指針
不傳任何參數,編譯並執行上面的代碼,它會產生下列結果:視頻
$./a.out One argument expected
應當指出的是,argv[0] 存儲程序的名稱,argv[1] 是一個指向第一個命令行參數的指針,*argv[n] 是最後一個參數。
若是沒有提供任何參數,argc 將爲 1,不然,若是傳遞了一個參數,argc 將被設置爲 2。
多個命令行參數之間用空格分隔,可是若是參數自己帶有空格,那麼傳遞參數的時候應把參數放置在雙引號 「」 或單引號 」 內部。
讓咱們從新編寫上面的實例,有一個空間,那麼你能夠經過這樣的觀點,把它們放在雙引號或單引號」」」」。
讓咱們從新編寫上面的實例,向程序傳遞一個放置在雙引號內部的命令行參數:
#include <stdio.h> int main( int argc, char *argv[] ) { printf("Program name %s/n", argv[0]); if( argc == 2 )
{ printf("The argument supplied is %s/n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied./n"); }
else { printf("One argument expected./n"); } }
使用一個用空格分隔的簡單參數,參數括在雙引號中,編譯並執行上面的代碼,它會產生下列結果:
$./a.out "testing1 testing2" Progranm name ./a.out The argument supplied is testing1 testing2
另外若是你想更好的提高你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這裏或許能夠幫到你~
歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!
編程學習: