我有一个结构
struct MyStruct
{
int intValue1;
float floatValue2;
std::string stringValue3;
} Structure;
现在,基于两个字符串的值输入,我想为结构的数据元素分配值:
std::string varName = "intValue1";
std::string varValue = "5";
因此,基于两个字符串,“ intValue1”应获得值5
Structure.intValue1 = (int)varValue;
是否可以编写一个函数,该函数将根据输入字符串自动将值分配给结构,例如:
void SetData( std::string varName , std::string varValue );
是的,可以使用字符串化运算符。这是一个简单的示例:
#include <string>
#include <iostream>
#define NAME_OF( v ) #v
struct MyStruct
{
int intValue1;
float floatValue2;
std::string stringValue3;
} Structure;
int main()
{
MyStruct A;
std::string varName = "intValue1";
std::string varValue = "5";
auto var_name = NAME_OF(A.intValue1);
if (varName.compare(var_name) != 0) {
A.intValue1 = std::stoi(varValue);
}
std::cout << A.intValue1 << " " << varValue << std::endl;
}
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句