有如下int变量分别被命名为 m_1th, m_2th, m_3th ......m_100th 一共一百个变量都已经被赋不同的值(非数组);
现在要将变量赋值给COleVariant varValueInt。
如何用for 语句实现简单的如for (int i=1;i<=100;i++)
{
varValueInt.iVal= m_"i"th; // 自动载入对应i值的int变量值
//do something else
}类型的快速给变量varValueInt赋值?
急!先谢谢各位的帮忙!
现在要将变量赋值给COleVariant varValueInt。
如何用for 语句实现简单的如for (int i=1;i<=100;i++)
{
varValueInt.iVal= m_"i"th; // 自动载入对应i值的int变量值
//do something else
}类型的快速给变量varValueInt赋值?
急!先谢谢各位的帮忙!
std::map< std::string, INT >
{
varValueInt.iVal= m(x); //do something else
}
给分吧
{
varValueInt.iVal= m(i); //do something else
}
这样写
#define m(x) m_##xth
这段的具体意思不是很明白……
m(6) --> m_6这是#define 的一种用法记住格式就可以了。
那个
是不是可以给分了吼吼~~~
在预编译的时候,编译器会自动替换宏,如M(i),编译时自动替换为m_i;
而for (int i=1;i<=100;i++)i的值只在运行时在栈上生成,编译的时候不可能识别i值。
所以通过变量i循环使用一个宏是无用的,始终为m_i,还得使用100个宏:
#define M(i) varValueInt.iVal= m_##i
M(1);M(2);..........M(100);
================================
不知道什么原因不用数组,如嫌这样写麻烦的话,
就写个循环for(int i=1;i<=100;i++)cout<<"varValueInt.iVal= m_"<<i<<"th\n";
把运行结果COPY到你的代码中...
{
varValueInt.iVal= m(i); //do something else
}
这样写是错误的,因为编译时m(i) -> m_i,编译就通不过
如
名称 数值
m_1th 1
m_2th 2
.......
CString strValueName;
for (int i=1;i<=100;i++)
{
strValueName = Compose();//自已写函数通过i值组成变量的名称,如i = 1时 strValueName的值为m_1th;
varValueInt.iVal= FindValue(CString &strValueName); // 通过FindValue(自已写)在表中查找他对应的值并返回 //do something else
}