2012-04-18 109 views
1

問題:如何從一行用戶輸入中讀取多個命令/變量/修飾符?從一行用戶輸入中讀取多個變量/命令

就像命令提示符那樣的CLI一樣,用戶輸入一行並從中讀取並分配變量+修飾符。

E.G. A轉換程序命令:

32 km to cm 

然後,它讀取:

numToConvert = (32) 

然後

"km to cm" 

點conversionRate1

conversionRate1 = (0.621371192) 

乘32由轉化率(0.621371192)

打印結果。

第二示例:

shutdown -h 

shutdown /? 

關閉被讀取作爲一個命令

-h修改它或/?修改它

回答

3

命令行上給出的任何東西,在程序名稱之後,被分割爲空格,並傳遞給args數組。

因此,考慮到:

class Program 
{ 
    static void Main(string[] args) 
    { 
     foreach (var a in args) 
     { 
      Console.WriteLine(a); 
     } 
    } 
} 

運行 「C:>的Program.exe轉換FOO吧」 會產生線

convert 
foo 
to 
bar 

爲了解析出語義,你會需要掃描args數組並查找修飾符。

如果你有嚴格的語法,你可以簡單地看在預期位置

var numToConvert = Convert.toint32(args[4]) 

如果你允許靈活的語法會更復雜;您需要制定一系列解析規則來幫助您瞭解輸入內容。

+0

謝謝!正是我在找的東西。我看到了與.split和數組類似的東西,但是我無法按照自己的意願去做。我看了一遍,我似乎無法把我想要的東西放入所有正確的關鍵字。我理解解析,並且藉口非正式的「通讀」代碼。在工作中午休息。 非常感謝! – user1342062 2012-04-18 17:51:25

0

此外,您可能希望查看一個旨在幫助解析和管理命令行參數的庫。 Command Line Parser Library是一個不錯的選擇。

+0

謝謝你,我會檢查它 – user1342062 2012-04-19 00:17:32

相關問題