c ++从字符串中获取公式

c++ taking a formula from a string

这个程序的目标是从用户输入中获取公式(我使用 QLineEdit)并绘制公式(对 qt 使用 QCustomPlot)。这是我遇到问题的代码部分:

QVector<double> x(10000), y(10000);
for (int i=0; i<10000; ++i)
{
  double xi = ui->xi_LineEdit->text().toDouble();
  x[i] = xi;
  double yi = ui->yi_LineEdit->text().toDouble();
  y[i] = yi;
}
ui->grafiek->addGraph();
ui->grafiek->graph(0)->setData(x, y);

这段代码显然现在不能工作。如何从用户输入中获取公式,例如 xi = i/50.0 - 20yi = x[i]*x[i],以及 处理

QLineEdit 为您提供包含数学表达式的 QString。此类型不能转换为 double 除非它只包含双精度数。例如,文本“10.34”可以从 QString 转换为 double,但文本“10.34 - 18 + 2”不能,因为它必须先求值。

您需要将 QLineEdit 文本传递给数学表达式解析器。如果您只需要处理简单的算术运算,您可以自己编写。这是一个值得学习的练习,您可以在网上找到大量示例,包括在 SO 上。如果您需要更复杂的解析,或者很着急,那么您可以 google for C++ math parser 或类似的并使用现有代码。