0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言中一個(gè)簡單的實(shí)例,檢查命令行是否有提供參數(shù)

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-11-12 14:49 ? 次閱讀

執(zhí)行程序時(shí),可以從命令行傳值給 C 程序。這些值被稱為命令行參數(shù),它們對程序很重要,特別是當(dāng)您想從外部控制程序,而不是在代碼內(nèi)對這些值進(jìn)行硬編碼時(shí),就顯得尤為重要了。

命令行參數(shù)是使用 main() 函數(shù)參數(shù)來處理的,其中,argc是指傳入?yún)?shù)的個(gè)數(shù),argv[]是一個(gè)指針數(shù)組,指向傳遞給程序的每個(gè)參數(shù)。下面是一個(gè)簡單的實(shí)例,檢查命令行是否有提供參數(shù),并根據(jù)參數(shù)執(zhí)行相應(yīng)的動(dòng)作:

#includeint main(int argc,char*argv[]){ if( argc ==2) { printf("The argument supplied is %s\n", argv[1]); } elseif( argc >2) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); }}

使用一個(gè)參數(shù),編譯并執(zhí)行上面的代碼,它會(huì)產(chǎn)生下列結(jié)果:

$./a.out testingThe argument supplied is testing

使用兩個(gè)參數(shù),編譯并執(zhí)行上面的代碼,它會(huì)產(chǎn)生下列結(jié)果:

$./a.out testing1 testing2Too many arguments supplied.

不傳任何參數(shù),編譯并執(zhí)行上面的代碼,它會(huì)產(chǎn)生下列結(jié)果:

$./a.outOne argument expected

應(yīng)當(dāng)指出的是,argv[0]存儲(chǔ)程序的名稱,argv[1]是一個(gè)指向第一個(gè)命令行參數(shù)的指針,*argv[n] 是最后一個(gè)參數(shù)。如果沒有提供任何參數(shù),argc 將為 1,否則,如果傳遞了一個(gè)參數(shù),argc將被設(shè)置為 2。

多個(gè)命令行參數(shù)之間用空格分隔,但是如果參數(shù)本身帶有空格,那么傳遞參數(shù)的時(shí)候應(yīng)把參數(shù)放置在雙引號 "" 或單引號 '' 內(nèi)部。讓我們重新編寫上面的實(shí)例,有一個(gè)空間,那么你可以通過這樣的觀點(diǎn),把它們放在雙引號或單引號""""。讓我們重新編寫上面的實(shí)例,向程序傳遞一個(gè)放置在雙引號內(nèi)部的命令行參數(shù):

#includeint main(int argc,char*argv[]){ printf("Program name %s\n", argv[0]); if( argc ==2) { printf("The argument supplied is %s\n", argv[1]); } elseif( argc >2) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); }}

使用一個(gè)用空格分隔的簡單參數(shù),參數(shù)括在雙引號中,編譯并執(zhí)行上面的代碼,它會(huì)產(chǎn)生下列結(jié)果:

$./a.out"testing1 testing2"Progranm name ./a.outThe argument supplied is testing1 testing2

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134027
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3719

    瀏覽量

    80355

原文標(biāo)題:C語言中的命令行參數(shù)

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    在STM32實(shí)現(xiàn)命令行

    工作中的開發(fā)環(huán)境都是基于linux命令行交互,作為命令行的重度使用者,玩單片機(jī)也要使用命令行工具,百度了命令行工具,
    發(fā)表于 12-09 11:32 ?2112次閱讀

    支持命令行傳遞的參數(shù)嗎?

    的每一個(gè)。要手動(dòng)嘗試在Makefile中設(shè)置CFLAGS??梢栽陬A(yù)處理器宏部分訪問命令行傳遞的參數(shù)嗎?如果這是在命令行值不是構(gòu)建的部分的I
    發(fā)表于 03-17 06:03

    如何獲取其它程序的命令行參數(shù)

    開發(fā)環(huán)境:VC6 Windows XP 測試環(huán)境:WindowsXP 我們都知道,在程序里獲取命令行參數(shù)簡單,WinMain函數(shù)會(huì)以參數(shù)的形式傳遞給我們,或者可以調(diào)用API Ge
    發(fā)表于 10-14 09:24 ?1次下載

    C語言入門教程-命令行參數(shù)

    命令行參數(shù)C中,獲取用戶輸入的命令行參數(shù)是很方便的。程序的主函數(shù)會(huì)接受
    發(fā)表于 07-29 14:22 ?2564次閱讀

    caxa命令行中的應(yīng)用

    caxa命令行中的應(yīng)用 命令行對于大多用戶來說往往只是輸入數(shù)據(jù)的作用,但是其中的奧妙還有很多,下面就給大家
    發(fā)表于 10-18 18:18 ?2257次閱讀

    CMD的命令行高級教程

    CMD的命令行高級教程
    發(fā)表于 10-24 08:31 ?30次下載
    CMD的<b class='flag-5'>命令行</b>高級教程

    mini shell命令行調(diào)試工具(單片機(jī)、c語言

    @mini shell命令行調(diào)試工具介紹Mini shell 命令行調(diào)試工具(單片機(jī)、c語言)Mini shell是
    發(fā)表于 11-29 10:21 ?9次下載
    mini shell<b class='flag-5'>命令行</b>調(diào)試工具(單片機(jī)、<b class='flag-5'>c</b><b class='flag-5'>語言</b>)

    Shell命令行解釋器簡介

    Shell 是個(gè)命令行解釋器,Shell 為用戶提供了與設(shè)備進(jìn)行命令行交互的方式,用戶通過串口、以太網(wǎng)、無線等方式將
    的頭像 發(fā)表于 08-19 17:20 ?3036次閱讀

    Golang基于flag庫實(shí)現(xiàn)個(gè)命令行工具

    Golang 標(biāo)準(zhǔn)庫中的 flag 庫提供了解析命令行選項(xiàng)的能力,我們可以基于此來開發(fā)命令行工具。
    的頭像 發(fā)表于 10-28 09:26 ?1175次閱讀

    Fcoder從命令行批量轉(zhuǎn)換為TIFF

    命令行批量轉(zhuǎn)換為TIFF 2TIFF圖像轉(zhuǎn)換軟件是個(gè)專業(yè)的命令行實(shí)用程序,用于以批處理模式將辦公文檔和圖像轉(zhuǎn)換為TIFF?;?b class='flag-5'>簡單的
    的頭像 發(fā)表于 05-22 14:13 ?636次閱讀
    Fcoder從<b class='flag-5'>命令行</b>批量轉(zhuǎn)換為TIFF

    個(gè)開源MCU級的命令行交互組件

    個(gè)開源MCU級命令行交互組件~
    的頭像 發(fā)表于 10-17 16:26 ?326次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>開源MCU級的<b class='flag-5'>命令行</b>交互組件

    linux命令行運(yùn)行步驟

    現(xiàn)光標(biāo)右邊出現(xiàn)了個(gè)類似于“ ”或“#”的字符,這就是命令行提示符。在大多數(shù)Linux發(fā)行版中,普通用戶的提示符是“ ”,而管理員或root用戶的提示符是“#”。 查找可用的命令 Li
    的頭像 發(fā)表于 11-17 10:18 ?630次閱讀

    pycharm命令行終端運(yùn)行代碼

    Python是種非常流行的編程語言,許多開發(fā)者使用它來編寫各種應(yīng)用程序和腳本。為了方便開發(fā)者編寫和測試代碼,PyCharm是種集成開發(fā)環(huán)境(IDE),它提供了許多功能和工具,其中包
    的頭像 發(fā)表于 11-22 11:20 ?3287次閱讀

    eclipse怎么使用命令行

    。JDK是運(yùn)行Java程序所必需的環(huán)境,而Eclipse則是個(gè)基于Java開發(fā)的IDE。在確保安裝完畢后,我們可以通過以下步驟來在命令行
    的頭像 發(fā)表于 12-06 11:26 ?1904次閱讀

    idea如何輸入命令行參數(shù)

    。 在大多數(shù)編程語言中,都提供了內(nèi)置的機(jī)制來處理命令行參數(shù),以便程序可以根據(jù)用戶的需求進(jìn)行不同的操作。下面我們將逐步介紹如何在常見的編程語言中
    的頭像 發(fā)表于 12-06 15:01 ?821次閱讀