Я хочу преобразовать целое число в строку. Я попробовал это так, но это не сработалоКак преобразовать целое число в строку
void foo()
{
int y = 1;
string x = static_cast<string>(y);
}
Я хочу преобразовать целое число в строку. Я попробовал это так, но это не сработалоКак преобразовать целое число в строку
void foo()
{
int y = 1;
string x = static_cast<string>(y);
}
std::to_string
функция должна сделать это:
string x = std::to_string(y);
Для противоположностью, это std::stoi
:
int z = std::stoi(y, nullptr, 10);
Нет, что не будет работать, так как int
и std::string
не связаны в любом классе иерархии. Поэтому ошибка static_cast
.
простой способ (хотя и не обязательно самый быстрый способ), чтобы написать
std::stringsteam ss;
ss << y;
std::string x = ss.str();
Но, если у вас есть C++ 11 компилятора, решение Йоахима Pileborg является гораздо лучше.
Может иметь это:
template <typename T>
string CovertToString (T Number)
{
ostringstream ss;
ss << Number;
return ss.str();
}
Я бы назвал это чем-то помимо 'NumberToString()', так как это будет работать для любого объекта, для которого существует такой потоковый оператор. – cdhowie
о том, что это мило +1; что это C++ 11? – Bathsheba
Примечание: это поддерживается только компиляторами с поддержкой C++ 11 (к которым вы, вероятно, должны быть к настоящему времени). –
@ Батшеба Да, это новое в C++ 11. Для старых компиляторов ваша версия - это решение для использования (и, скорее всего, работает 'to_string'). –