執(zhí)行程序時,可以從命令行傳值給 C 程序。這些值被稱為命令行參數(shù),它們對程序很重要,特別是當您想從外部控制程序,而不是在代碼內(nèi)對這些值進行硬編碼時,就顯得尤為重要了。
命令行參數(shù)是使用 main() 函數(shù)參數(shù)來處理的,其中,argc是指傳入?yún)?shù)的個數(shù),argv[]是一個指針數(shù)組,指向傳遞給程序的每個參數(shù)。下面是一個簡單的實例,檢查命令行是否有提供參數(shù),并根據(jù)參數(shù)執(zhí)行相應(yīng)的動作:
#include
使用一個參數(shù),編譯并執(zhí)行上面的代碼,它會產(chǎn)生下列結(jié)果:
$./a.out testingThe argument supplied is testing
使用兩個參數(shù),編譯并執(zhí)行上面的代碼,它會產(chǎn)生下列結(jié)果:
$./a.out testing1 testing2Too many arguments supplied.
不傳任何參數(shù),編譯并執(zhí)行上面的代碼,它會產(chǎn)生下列結(jié)果:
$./a.outOne argument expected
應(yīng)當指出的是,argv[0]存儲程序的名稱,argv[1]是一個指向第一個命令行參數(shù)的指針,*argv[n] 是最后一個參數(shù)。如果沒有提供任何參數(shù),argc 將為 1,否則,如果傳遞了一個參數(shù),argc將被設(shè)置為 2。
多個命令行參數(shù)之間用空格分隔,但是如果參數(shù)本身帶有空格,那么傳遞參數(shù)的時候應(yīng)把參數(shù)放置在雙引號 "" 或單引號 '' 內(nèi)部。讓我們重新編寫上面的實例,有一個空間,那么你可以通過這樣的觀點,把它們放在雙引號或單引號""""。讓我們重新編寫上面的實例,向程序傳遞一個放置在雙引號內(nèi)部的命令行參數(shù):
#include
使用一個用空格分隔的簡單參數(shù),參數(shù)括在雙引號中,編譯并執(zhí)行上面的代碼,它會產(chǎn)生下列結(jié)果:
$./a.out"testing1 testing2"Progranm name ./a.outThe argument supplied is testing1 testing2
-
C語言
+關(guān)注
關(guān)注
180文章
7581瀏覽量
135540 -
程序
+關(guān)注
關(guān)注
115文章
3742瀏覽量
80661
原文標題:C語言中的命令行參數(shù)
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論