1

问题:如何从单行用户输入中读取多个命令/变量/修饰符?

就像命令提示符之类的任何 CLI 所做的一样,用户输入一行并从中读取和分配变量 + 修饰符。

EG 转换程序指令:

32 km to cm

然后是这样写的:

numToConvert = (32)

然后

"km to cm"

点转换率1

 conversionRate1 = (0.621371192)

将 32 乘以转化率 (0.621371192)

打印结果。

第二个例子:

shutdown -h

或者

shutdown /?

shutdown 被读取为命令

-h 修改它或 /? 修改它

4

2 回答 2

3

命令行上给出的任何东西,在程序名称之后,都被空格分割,并传递给 args 数组。

所以,给定:

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

运行“c:>program.exe convert foo to bar”将产生这些行

convert
foo
to
bar

为了解析出语义,您需要扫描 args 数组并查找修饰符。

如果你有严格的语法,你可以简单地查看预期的位置

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

如果您允许灵活的语法,它将更加复杂;您将需要开发一系列解析规则来帮助您理解输入。

于 2012-04-18T17:48:24.827 回答
0

此外,您可能希望查看一个旨在帮助解析和管理命令行参数的库。命令行解析器库是一个不错的选择。

于 2012-04-18T18:53:44.290 回答