2013-09-24 4 views

ответ

9

std::to_string функция должна сделать это:

string x = std::to_string(y); 

Для противоположностью, это std::stoi:

int z = std::stoi(y, nullptr, 10); 
+0

о том, что это мило +1; что это C++ 11? – Bathsheba

+2

Примечание: это поддерживается только компиляторами с поддержкой C++ 11 (к которым вы, вероятно, должны быть к настоящему времени). –

+0

@ Батшеба Да, это новое в C++ 11. Для старых компиляторов ваша версия - это решение для использования (и, скорее всего, работает 'to_string'). –

5

Нет, что не будет работать, так как int и std::string не связаны в любом классе иерархии. Поэтому ошибка static_cast.

простой способ (хотя и не обязательно самый быстрый способ), чтобы написать

std::stringsteam ss; 
ss << y; 
std::string x = ss.str(); 

Но, если у вас есть C++ 11 компилятора, решение Йоахима Pileborg является гораздо лучше.

1

Может иметь это:

template <typename T> 
    string CovertToString (T Number) 
    { 
    ostringstream ss; 
    ss << Number; 
    return ss.str(); 
    } 
+1

Я бы назвал это чем-то помимо 'NumberToString()', так как это будет работать для любого объекта, для которого существует такой потоковый оператор. – cdhowie

Смежные вопросы