如何遍历用户的输入并识别其中的元素?

时间:2019-10-28 05:52:06

标签: c++ input

例如,用户的输入是“ add -r ZacZ 1234567890 1999 abc”,假设每个元素都有其自己的用途(例如-r是一个函数),如何识别它们并对其进行计算?

void MyMusic::excuteCMDADD(Command cmd){
   //ADD STH HERE//
   view.printOutput("EXECUTING: " + CMD.getCommandString());
}

期望正确读取所有元素(包括-r(functions))。

1 个答案:

答案 0 :(得分:0)

如果您需要识别一些命令,不同的单词和其他方法,则需要这样做:

是使代码自动化并声明所有可能的命令的唯一方法。

您需要先定义一个令牌:

  

词法标记或简单地标记是一个带有赋值的字符串,因此   确定的含义。它被构造成由令牌组成的一对   名称和可选的令牌值。令牌名称是以下类别   词汇单位。

换句话说,您对命令的特殊含义。

之后,您需要一个词汇语法

  

编程语言的规范通常包括一组   规则,即词汇语法,它定义了词汇语法。的   词汇语法通常是常规语言,具有语法规则   由正则表达式组成;他们定义了可能的集合   令牌的字符序列(词汇)。词法分析器识别字符串,   对于发现的每种字符串,词法程序都会采取行动,   最简单地产生令牌。

并进行令牌化:

  

标记化是划分和可能分类的过程   输入字符字符串的各个部分。结果令牌是   然后继续进行其他形式的处理。该过程可以是   被视为解析输入的子任务

最后是命令表达式的扫描程序和评估程序。

这是真正的方法,或者如果是否,如果您会在定义的时间内讨厌您的代码。