返回的字符串和获取的字符串不匹配

时间:2013-11-03 03:54:56

标签: c++ string

我已经定义了以下函数来对字符串执行一些操作并返回结果:

string Message()
{
string result = "";
int l;

    result += "1";
    for(l = 0; l < routers; l++)
    {
        result += " " + table[l];

    }
    cout<<result<<endl;
return result;
}

然而,当我在while循环中获取(如果我可以命名为fetch)返回的结果并将其打印出来时,它们就不一样!!

while(true)
{    
string a = Message();
cout<<a<<endl;

//do some operation
}

结果:

1 12 13 15 21 1 (printed out before exiting the function)
1 12 13 15 21 (after fetching)

可能是什么原因?

2 个答案:

答案 0 :(得分:1)

“其他操作”中的代码很可能会修改全局变量routers,或者不太可能修改变量表。

祝你好运!

答案 1 :(得分:0)

我不知道某些系统出了什么问题,但对我来说,我将“l&lt; routers”部分更改为“l&lt; = router”,现在它运行良好!它们都产生相同的结果!

string Message()
{
string result = "";
int l;

result += "1";
for(l = 0; l <= routers; l++)
{
    result += " " + table[l];

}
cout<<result<<endl;
return result;
}