c之命令列引數

2021-08-15 13:05:25 字數 1422 閱讀 6233

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

命令列引數是使用 main() 函式引數來處理的,其中,argc是指傳入引數的個數,argv是乙個指標陣列,指向傳遞給程式的每個引數。下面是乙個簡單的例項,檢查命令列是否有提供引數,並根據引數執行相應的動作:

#include

intmain

(int

argc

,char

*argv

)elseif(

argc

>2)

else

}

使用乙個引數,編譯並執行上面的**,它會產生下列結果:

$./a

.out

testing

theargument supplied

istesting

使用兩個引數,編譯並執行上面的**,它會產生下列結果:

$./a

.out

testing1 testing2

toomany arguments supplied

.

不傳任何引數,編譯並執行上面的**,它會產生下列結果:

$./a

.out

oneargument expected

應當指出的是,argv[0]儲存程式的名稱,argv[1]是乙個指向第乙個命令列引數的指標,*argv[n] 是最後乙個引數。如果沒有提供任何引數,argc 將為 1,否則,如果傳遞了乙個引數,argc將被設定為 2。

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

#include

intmain

(int

argc

,char

*argv

)elseif(

argc

>2)

else

}

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

$./a

.out

"testing1 testing2"

progranm

name ./a

.out

theargument supplied

istesting1 testing2

C 命令列引數

我們一般把main函式寫做 int main 但main函式是有引數的 include using namespace std intmain int argc,char ar argc表示命令行編譯執行時,輸入的字串個數,ar 是乙個指標的指標,或者說是乙個字串陣列。c cx g argc.cpp...

C 命令列引數

回顧一下我們的學習歷程 第乙個c程式 int main 隨著進一步學習,空著似乎不太好,於是加上了void int main void 到後面越來越頻繁的看到括號內出現了兩個引數agrc和ar 的寫法 int main int argc,char ar int main int argc,char ...

Qt之命令列引數

在qt之程序間通訊 qprocess 一節,我們講解了如何通過qprocess來進行程序間的通訊。主要通過啟動外部程式,然後通過命令列的方式傳遞引數。這裡,我們可以通過qt creator來設定命令列引數arguments,來設定需要用到的資訊。也可以用來測試其它程序傳參功能。選擇 專案 構建和執行...