初識編程 | 論如何優雅地學習C語言之命令行參數

執行程序時,能夠從命令行傳值給 C 程序。這些值被稱爲命令行參數,它們對程序很重要,特別是當您想從外部控制程序,而不是在代碼內對這些值進行硬編碼時,就顯得尤其重要了。

命令行參數是使用 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++編程!彎道超車,快人一步!筆者這裏或許能夠幫到你~

分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!

編程學習:


 

編程學習:

相關文章
相關標籤/搜索