精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

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

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

命令行參數是使用 main() 函數參數來處理的,其中,argc是指傳入參數的個數,argv[]是一個指針數組,指向傳遞給程序的每個參數。下面是一個簡單的實例,檢查命令行是否有提供參數,并根據參數執行相應的動作:

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

使用一個參數,編譯并執行上面的代碼,它會產生下列結果:

$./a.out testingThe argument supplied is testing

使用兩個參數,編譯并執行上面的代碼,它會產生下列結果:

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

不傳任何參數,編譯并執行上面的代碼,它會產生下列結果:

$./a.outOne argument expected

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

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

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

使用一個用空格分隔的簡單參數,參數括在雙引號中,編譯并執行上面的代碼,它會產生下列結果:

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7576

    瀏覽量

    133998
  • 程序
    +關注

    關注

    115

    文章

    3719

    瀏覽量

    80354

原文標題:C語言中的命令行參數

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

收藏 人收藏

    評論

    相關推薦

    在STM32實現命令行

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

    支持命令行傳遞的參數嗎?

    的每一個。要手動嘗試在Makefile中設置CFLAGS。可以在預處理器宏部分訪問命令行傳遞的參數嗎?如果這是在命令行值不是構建的部分的I
    發表于 03-17 06:03

    如何獲取其它程序的命令行參數

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

    C語言入門教程-命令行參數

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

    caxa命令行中的應用

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

    CMD的命令行高級教程

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

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

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

    Shell命令行解釋器簡介

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

    Golang基于flag庫實現命令行工具

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

    Fcoder從命令行批量轉換為TIFF

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

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

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

    linux命令行運行步驟

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

    pycharm命令行終端運行代碼

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

    eclipse怎么使用命令行

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

    idea如何輸入命令行參數

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