這篇文章主要介紹“C語(yǔ)言的命令行參數(shù)如何使用”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“C語(yǔ)言的命令行參數(shù)如何使用”文章能幫助大家解決問(wèn)題。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供德欽網(wǎng)站建設(shè)、德欽做網(wǎng)站、德欽網(wǎng)站設(shè)計(jì)、德欽網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、德欽企業(yè)網(wǎng)站模板建站服務(wù),十載德欽做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
c語(yǔ)言的命令行參數(shù)非常簡(jiǎn)單,只需要一個(gè)簡(jiǎn)單的例子就可以說(shuō)明:
#includevoid main(int argc,char** argv) { printf("%d ",argc); printf("%s ",argv[0]); printf("%s ",argv[1]); printf("%s ",argv[2]); }
在上面的例子中,我們給main函數(shù)傳遞兩個(gè)參數(shù),argc和argv。argc是int類型的,它表示的是命令行參數(shù)的個(gè)數(shù)。不許要用戶傳遞,它會(huì)根據(jù)用戶從命令行輸入的參數(shù)個(gè)數(shù),自動(dòng)確定。argv是char**類型的,它的作用是存儲(chǔ)用戶從命令行傳遞進(jìn)來(lái)的參數(shù)。它的第一個(gè)成員是用戶運(yùn)行的程序名字。
對(duì)于上面的例子,我們將其保存為test.c,用gcc編譯生成目標(biāo)文件為test,測(cè)試如下:
(1)我們值在命令行下直接運(yùn)行程序,沒(méi)有傳遞其它任何參數(shù):
./test
運(yùn)行結(jié)果如下:
第一個(gè)輸出的是argc,因?yàn)槲覀冎惠斎肓?/test,所以argc為1,即只有一個(gè)命令行參數(shù)。后面輸出的第一個(gè)命令行參數(shù)也是./test。接著程序就出錯(cuò)了,因?yàn)楹竺嬉呀?jīng)沒(méi)有第二個(gè)和第三個(gè)參數(shù)了,在寫(xiě)實(shí)際的應(yīng)用時(shí),應(yīng)注意對(duì)這一部分進(jìn)行容錯(cuò)處理。
(2)我們?cè)诿钚邢螺斎耄?/p>
./test hello world
可以看到argc為3,第一個(gè)參數(shù)為./test,第二個(gè)參數(shù)為hello,第三個(gè)參數(shù)為world。
(3)我們繼續(xù)輸入:
./test hello world hello world
可以看到這時(shí),argc變?yōu)?,argv指數(shù)出了前面三個(gè)參數(shù),當(dāng)然還可以把后面的兩個(gè)參數(shù)也進(jìn)行輸出。
如果命令行中傳遞的一個(gè)參數(shù)包括空格,就需要用用“ ”將參數(shù)擴(kuò)起來(lái)例如
./test "hello world" "hello world"
我們將hello world整體當(dāng)作一個(gè)參數(shù)傳遞,就需要使用“hello world”。
需要注意的是argv的類型可以是char ** argv,char argv[ ][ ],char* argv[ ]。
關(guān)于“C語(yǔ)言的命令行參數(shù)如何使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。