问题:如何从一行用户输入中读取多个命令/变量/修饰符?
就像命令提示符这样的CLI一样,用户输入一行,并从中读取变量+修饰符并从中分配。
E.G。转换程序命令:
32 km to cm
然后是:
numToConvert = (32)
然后
"km to cm"
指向conversionRate1
conversionRate1 = (0.621371192)
按转换率乘以32(0.621371192)
打印结果。
第二个例子:
shutdown -h
或
shutdown /?
关闭被读作命令
-h修改它还是/?修改它
答案 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是个不错的选择。