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);
}
}
但请注意检查输入流。它不应该像你做的那么容易......但这是另一个问题。
我的任务是编写一个预处理器,用它的实际值替换常量变量。为此,我创建了一个结构和一个向量来存储常量名称和值。但不幸的是,我遇到了各种编译错误。任何人都可以发现任何潜在的问题吗?提前谢谢你
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);
}
}
但请注意检查输入流。它不应该像你做的那么容易......但这是另一个问题。