2011-04-29 119 views
1

我正在寫一個命令行實用程序,我想解析幾個參數:現在我不從地址讀取數據(所以請不要迷惑-addr);我的主要目標是設計框架,以便我可以解析如下幾個參數。如何使用命令行參數解析幾個參數

filename read -addr value -addr2 value2 -addrN valueN -length value -range value -length2 value2 -lengthN valueN -width value -width2 value2 -widthN valueN 

的N可以有64的最大值和最小值的1

請給一些有價值的建議,使我能做到這一點。 感謝

+1

向我們顯示您的代碼,並解釋您的困難。否則,這是「send teh codez plz」。 – abelenky 2011-04-29 06:21:16

+0

我認爲我們可以提供幫助,而無需進行實際的解析:) – slezica 2011-04-29 06:23:47

回答

1

典型main()原型是這樣的:

int main(int argc, char** argv) { 
    // stuff 
} 

當你的程序從一個命令行中執行,argc將是你的論據,節目名稱的總數,加一本身;你可以將argv看作包含參數的字符串數組。

知道argc,解析參數列表應該很容易:)

編輯:短例如,以防萬一。

int main(int argc, char** argv) { 
    printf("%d\n", argc); 
} 

然後,在您的CL:

./program asd asd asd 
4 

的argv [0]爲 「節目」,argv的[1]是 「ASD」,等等

+0

@ Santiago Lezica嘿嗨我知道命令行參數,但我正在處理可變數量的參數,就像我可以在命令行中提供任意數量的參數一樣;這是引起我這個問題的東西。你們中的任何一個人可以爲我提供的可變數量的參數提供幫助:「getopt」可以解決我的問題,但我不知道如何使用它。 – Tejendra 2011-04-29 06:39:35

+0

只要您知道參數的總數,您就可以在遍歷它們並確定它們影響哪些設置的情況下沒有任何問題。只是循環和分析。 – slezica 2011-04-29 20:15:14