首页 > 解决方案 > CPP 中类似控制台的应用程序

问题描述



我在 CPP 中分配了一个编码作业,我应该在其中创建一个矩阵计算器。考虑到我需要做的只是矩阵计算、使用多态性、考虑内存消耗和更多标准,这将是一个不错的任务。我正在努力解决的是应该是一个类似控制台的环境。

意思是启动应用程序,我在提示符下键入以下命令:

扫描 x[3][3] \n // 这将创建标记为“x”的新矩阵,并等待输入 9 个整数(可能是长整数)。

z = 添加 xy \n // 或
z = x + y \n

我熟悉自动机理论(在某种程度上),让它变得如此简单应该不是问题。(这实际上与自动机无关)简单意味着每行一个命令 - 因为这就是我现在正在做的事情。我有一些解析器类可以分解命令,然后进行必要的更改。它更像是从第一个单词到最后一个单词的 if-else 树。如果我遇到无法识别的单词 - 语法/语法错误。

我要问的是一些关于如何使它更像 .. bash 的提示,例如。
由于该应用程序是在 bash 中运行的。首先
问:我如何获得键入命令的历史记录?rn 当我按下箭头时,我得到了那些 ^[[A.
第二个问题:一些提示如何开始解析一些更复杂的命令,例如:a = b = c * (d + q)(暗示 'c' 可以乘以 "(d + q)" 并且 'd' 可以添加到 'q'等等..)不能用我的解析器工作的静态方式来完成的bcs。

谢谢你们。

标签: c++parsingcommand-prompt

解决方案


对于您的第一个问题,请查看libreadlineor libeditline。如果您不想抬起手指,请在rlwrap包装器下运行您的程序。

对于第二个问题,请查看Simple library or implementation for a math expression evaluator。寻找一种允许您定义和使用变量的方法。


推荐阅读