那曲檬骨新材料有限公司

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

    文章

    7614

    瀏覽量

    137733
  • 程序
    +關注

    關注

    117

    文章

    3796

    瀏覽量

    81419

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

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

收藏 人收藏

    評論

    相關推薦

    在STM32實現命令行

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

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

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

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

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

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

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

    caxa命令行中的應用

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

    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 ?10次下載
    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 ?3281次閱讀

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

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

    Fcoder從命令行批量轉換為TIFF

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

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

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

    linux命令行運行步驟

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

    pycharm命令行終端運行代碼

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

    eclipse怎么使用命令行

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

    idea如何輸入命令行參數

    。 在大多數編程語言中,都提供了內置的機制來處理命令行參數,以便程序可以根據用戶的需求進行不同的操作。下面我們將逐步介紹如何在常見的編程語言中
    的頭像 發表于 12-06 15:01 ?1247次閱讀
    澳门百家乐职业赌客| 实战百家乐官网十大取胜原因百分百战胜百家乐官网不买币不吹牛只你能做到按我说的.百家乐官网基本规则 | 扬中棋牌游戏中心| 百家乐哪条路准| 至富百家乐官网的玩法技巧和规则| 百家乐官网国际娱乐| 大发888客服端下载| 大世界百家乐娱乐场| 百家乐官网7人桌布| 新思维百家乐官网投注法| 永亨娱乐城| 大发888网页版下载| 百家乐庄家出千内幕| 百家乐官网是怎么赌法| 百家乐官网能赢到钱吗| 博彩一族| 大发888网址| 百家乐实战路| 百家乐小游戏开发| 怎么玩百家乐官网的玩法技巧和规则 | 神话百家乐官网的玩法技巧和规则| 百家乐官网知敌便能制胜| 永利高足球平台| 大发888娱乐场下载注册| 百家乐娱乐场真人娱乐场| 百家乐数据程序| 大世界百家乐官网娱乐| 帝王百家乐官网新足球平台| 太阳城娱乐网站| 大发888官网客户端| 澳门百家乐博| 闲和庄百家乐娱乐平台| 百家乐视频游戏网站| 百家乐官网知道| 百家乐官网赌博导航| 百家乐官网庄河闲的赌法| 逊克县| 百家乐怎样赢| 网上娱乐城注册送现金| 百家乐必胜课| 百家乐2号机器投注技巧|