1

質問:1行のユーザー入力から複数のコマンド/変数/修飾子をどのように読み取りますか?

コマンドプロンプトなどのCLIと同様に、ユーザーは1行を入力すると、変数と修飾子が読み取られ、そこから割り当てられます。

EG変換プログラムコマンド:

32 km to cm

それからそれは読みます:

numToConvert = (32)

それから

"km to cm"

ConversionRate1を指す

 conversionRate1 = (0.621371192)

32に変換率を掛ける(0.621371192)

結果を印刷します。

2番目の例:

shutdown -h

また

shutdown /?

シャットダウンはコマンドとして読み取られます

-hはそれを変更しますまたは/?それを変更します

4

2 に答える 2

3

プログラム名の後にコマンドラインで指定されたものはすべて空白で分割され、args配列に渡されます。

だから、与えられた:

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

「c:> program.execonvert footobar」を実行すると次の行が生成されます

convert
foo
to
bar

セマンティックな意味を解析するには、args配列をスキャンして、修飾子を探す必要があります。

厳密な構文を使用している場合は、予想される位置を簡単に調べることができます

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

柔軟な構文を許可している場合は、より複雑になります。入力を理解するのに役立つ一連の解析ルールを作成する必要があります。

于 2012-04-18T17:48:24.827 に答える
0

さらに、コマンドライン引数の解析と管理を支援するために設計されたライブラリを調べることもできます。コマンドラインパーサーライブラリは良いオプションです。

于 2012-04-18T18:53:44.290 に答える