将int转换为字符串后始终为0

时间:2017-07-29 12:40:42

标签: c++

我有一个将整数转换为std :: string的函数。

std::stringstream Tools::toStringConverter;
std::string Tools::tempString;

std::string Tools::intToString(int num) {
    toStringConverter.str(std::string());
    toStringConverter << num;
    toStringConverter >> tempString;
    return tempString;
}

当我尝试在使用迭代器时使用此方法时,我得到了正确的结果

for(Button b : buttons) {
    std::cout << Tools::intToString(b.id);
}

如果我尝试这样做,输出也是正确的:

std::cout<< intToString(3);

但是当我使用简单的for循环时,我总是得到0。

for(int i = 0; i < NetworkManager::MAX_PLAYERS; i++) {
    std::cout << Tools::intToString(i) << " ";
}

1 个答案:

答案 0 :(得分:1)

std::string Tools::intToString(int num) {
    std::stringstream toStringConverter;
    toStringConverter << num;
    return toStringConverter.str();
}

不要使用全局变量。