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

问题描述 投票:0回答:1

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

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

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

c++ input
1个回答
0
投票

如果您需要识别某些命令,不同的单词以及其他需要执行的操作:

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

您需要先定义一个令牌:

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

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

[之后,您需要词汇语法

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

并进行标记化:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.