繁体   English   中英

使用宏将字符串解析为表达式 C++

[英]Using macros to parse string to expression C++

我试图编写一个程序,该程序将输入作为字符串传递,然后将该字符串传递给一个宏,该宏应该将字符串作为纯文本表达式插入,但该宏的行为不像我所怀疑的那样。

#include <iostream>
#include <cmath>
#include <string>

#define  PARSE(a) a;


using namespace std;

int main() {
    string c ;
    int b;
    cin >> c;

    b = PARSE(c);

    cout << b;

    return 0;
}

这段代码不会编译,它给出一个错误,说我不能将字符串转换为 int,但是 PARSE(c) 不应该被视为一个字符串,它应该被纯文本替换。

该错误意味着您确实在尝试将 std::string (c) 转换为 int 并且无法完成 (b)。 如果你想访问纯文本,一旦你使用了 std::string,你应该调用 c_str() 方法,例如:

cout << c.c_str();

@edit:如果您尝试从 PHP 执行类似“eval()”的操作,您可以查看: https://stackoverflow.com/a/11078610/12385171

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM