執行程式時,可以從命令列傳值給 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"); } }
使用一個引數,編譯并執行上面的代碼,它會產生下列結果:
$./a.out testing The argument supplied is testing
使用兩個引數,編譯并執行上面的代碼,它會產生下列結果:
$./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++編程!彎道超車,快人一步!筆者這里或許可以幫到你~
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
編程學習:

編程學習:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/270573.html
標籤:C
下一篇:C語言學習:演算法實作層面套數
