有啥想法可以像读取代码一样读取用户输入吗?
Posted
技术标签:
【中文标题】有啥想法可以像读取代码一样读取用户输入吗?【英文标题】:Any idea to read user input as if it was code?有什么想法可以像读取代码一样读取用户输入吗? 【发布时间】:2018-08-05 04:57:56 【问题描述】:我正在尝试使用主要操作:'^','v','*'制作一个布尔矩阵计算器。我已经做到了,因此您可以通过要求输入每个矩阵框来填充它。但是当您尝试填充 10x10 矩阵时,它会变得乏味。所以我想有一个可以按条件填充的选项(比如 i=row 和 j=column)。
我希望用户能够输入自己的填充选项。喜欢:
if (5 <= 3i+2j <=8)
m[i][j] = 1;
else m[i][j] = 0;
或
m[i][j] = [pow(-1,i+j)+pow(-1,i*j)]/2;
编写代码很容易,但这些条件应由用户输入。所以我正在考虑将所有输入存储在一个字符串上,然后从那里解释它,但我发现它很复杂。你会说这是一个糟糕/不可行的解决方案吗?
【问题讨论】:
所以你要求在用户输入上运行编译器?使用 python 或类似工具可能会更好。 这很复杂,取决于您要支持多少操作,但这是正确的方向。用户可以从菜单中选择少量的固定算法要容易得多。如果他们想要更花哨的东西,可以使用 excel、matlab 等任何工具来生成数字并将数字作为文件提供给程序。 您可以为用户输入的代码制作自己的解析器。 您正在尝试实现一种简单的编程语言。你可能想读一本关于编译器和解释器的书。 Lua 是一种简单的语言,经过明确设计,易于嵌入到其他应用程序中。我建议您对其进行调查,因为它可以很简单地嵌入到 C++ 应用程序中,并且可以让您的用户在 Lua 中编写自定义函数,然后在您的主 C++ 应用程序中运行。 【参考方案1】:考虑将所有输入存储在一个字符串中,然后从那里进行解释,但我发现它很复杂。
与其将所有输入存储在一个字符串中,为什么不显示两个选项,然后让用户填写变量值?像这样:
Your matrix fill options :
[A]
if (a <= b*i+c*j <= d )
m[i][j] = 1;
else m[i][j] = 0;
[B]
m[i][j] = [pow(-1,i+j)+pow(-1,i*j)]/2;
然后如果用户选择“A”,请他们输入 a、b、c、d 值。 “B”也是如此。您也可以添加简单的视觉效果。 ( :
你会说这是一个糟糕/不可行的解决方案吗?
恕我直言,坏是相对的。如果您希望此代码可维护,请不要忘记注释代码关键点。如果您正在为附加约束的任务进行此操作.. 看来您做得对。
在我个人看来,500 行代码可以自信地运行良好,比 5 行代码让我内心深处感到不安要好得多。如果您清楚要执行的计划算法,剩下的就是正确编码,并在适用的情况下改进/简化 GUI。
希望对您有所帮助.. ( :
【讨论】:
以上是关于有啥想法可以像读取代码一样读取用户输入吗?的主要内容,如果未能解决你的问题,请参考以下文章