C ++在向量中存储常量变量名称

C++ Storing constant varibale names within a vector

我的任务是编写一个预处理器,用它的实际值替换常量变量。为此,我创建了一个结构和一个向量来存储常量名称和值。但不幸的是,我遇到了各种编译错误。任何人都可以发现任何潜在的问题吗?提前谢谢你

using namespace std;
    
struct constantVariable 
{
    string constantName;
    string constantValue;
}; 

void defineReplace(string line)
{

    vector <constantVariable> constant;
    
    
    string token;
    
    stringstream stream(line);
    while(stream >> token)
    {
        
        if(token == "#define")
        {
        stream >> token;
        constant.constantName = token;
        stream >> token;
        constant.constantValue = token;
        break;
        }
    }
    
    constant.push_back(constant);
}

只需在你的阅读循环中使用一个新的局部变量,就像这样:

    while(stream >> token)
    {
        
        if(token == "#define")
        {
        constantVariable addconstant;
        stream >> token;
        addconstant.constantName = token;
        stream >> token;
        addconstant.constantValue = token;
        constant.push_back(addconstant);
        }
    }

但请注意检查输入流。它不应该像你做的那么容易......但这是另一个问题。