从单行用户输入中读取多个变量/命令

时间:2012-04-18 17:34:06

标签: c# .net console user-input

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

就像命令提示符这样的CLI一样,用户输入一行,并从中读取变量+修饰符并从中分配。

E.G。转换程序命令:

32 km to cm

然后是:

numToConvert = (32)

然后

"km to cm"

指向conversionRate1

 conversionRate1 = (0.621371192)

按转换率乘以32(0.621371192)

打印结果。

第二个例子:

shutdown -h

shutdown /?

关闭被读作命令

-h修改它还是/?修改它

2 个答案:

答案 0 :(得分:3)

在程序名后,命令行上给出的任何内容都在空格上分割,然后传入args数组。

所以,给定:

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

运行“c:> program.exe将foo转换为bar”将生成行

convert
foo
to
bar

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

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

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

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

答案 1 :(得分:0)

此外,您可能希望查看专为帮助解析和管理命令行参数而设计的库。 Command Line Parser Library是个不错的选择。