将数据作为代码传递

use*_*735 0 c++

我正在尝试解释作为输入的公式:

y= y argv[1][s] 5;
Run Code Online (Sandbox Code Playgroud)

例如,哪里argv[1][s]可以+ - *.
y = y + 5;
y = y*5;

我可以使用特定值的检查,但更有趣的是找出为什么这不起作用.

错误C2146:语法错误:缺少';' 在标识符'argv'之前

我认为发生的+是传递,'+'因此没有操作结果.有没有办法解决这个问题?

Oli*_*rth 8

不,因为这不是C++的工作原理.您的代码必须在编译时有意义,以便编译器可以将其转换为一组固定的汇编程序指令.运行时文本未被"替换"; 在某些解释语言中没有"eval"的等价物.

如果你想这样做,你需要做类似的事情:

switch (argv[1][s])
{
case '+':
    y = y + 5;
    break;
case '-':
    y = y - 5;
    break;
case '*':
    y = y * 5;
    break;
default:
    std::cerr << "Unrecognised operator: \"" << argv[1][s] << "\"" << std::endl;
    break;
}
Run Code Online (Sandbox Code Playgroud)