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

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

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

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

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

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

命令行參數(shù)是使用 main() 函數(shù)參數(shù)來處理的,其中,argc是指傳入?yún)?shù)的個數(shù),argv[]是一個指針數(shù)組,指向傳遞給程序的每個參數(shù)。下面是一個簡單的實例,檢查命令行是否有提供參數(shù),并根據(jù)參數(shù)執(zhí)行相應(yī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"); }}

使用一個參數(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ù):

#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"); }}

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

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    的每一個。要手動嘗試在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ù)會以參數(shù)的形式傳遞給我們,或者可以調(diào)用API Ge
    發(fā)表于 10-14 09:24 ?1次下載

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

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

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

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

    CMD的命令行高級教程

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

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

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

    Shell命令行解釋器簡介

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

    Golang基于flag庫實現(xiàn)命令行工具

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

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

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

    開源MCU級的命令行交互組件

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

    linux命令行運行步驟

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

    pycharm命令行終端運行代碼

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

    eclipse怎么使用命令行

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

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

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