如何将整数转换为字符串[重复]
Posted
技术标签:
【中文标题】如何将整数转换为字符串[重复]【英文标题】:How to convert an integer to a string [duplicate] 【发布时间】:2013-09-30 03:16:05 【问题描述】:我想将整数转换为字符串。我试过这种方法,但没有用
void foo()
int y = 1;
string x = static_cast<string>(y);
【问题讨论】:
【参考方案1】:不,因为int
和std::string
在任何类层次结构中都不相关,所以这不起作用。因此static_cast
将失败。
一个简单的方法(虽然不一定是最快的方法)是写
std::stringsteam ss;
ss << y;
std::string x = ss.str();
但是,如果你有一个 C++11 编译器,Joachim Pileborg 的解决方案要好得多。
【讨论】:
【参考方案2】:std::to_string
函数应该这样做:
string x = std::to_string(y);
相反,它是std::stoi
:
int z = std::stoi(y, nullptr, 10);
【讨论】:
哦,真可爱+1;那是 C++11 的东西吗? 注意:这仅由支持 C++11 的编译器支持(您现在可能应该拥有)。 @Bathsheba 是的,它是 C++11 中的新功能。对于较旧的编译器,您的版本是使用的解决方案(很可能是to_string
的工作方式)。
在 MS Visual Studio 2010 C++ 上,我收到此错误:错误 C2668:'std::to_string':对重载函数的模糊调用。如果我将 x 转换为 (long double),一切正常。实际上,看起来其他人也有同样的问题:***.com/questions/14617950/… 无论如何,不确定这个答案是否适用于所有现代编译器。 VS 2010 并没有那么旧。但那是 C++,你能说什么:)。
VS 2010 不是 C++ 2011 的完整实现。【参考方案3】:
可以有这个:
template <typename T>
string CovertToString ( T Number )
ostringstream ss;
ss << Number;
return ss.str();
【讨论】:
我会考虑将其称为NumberToString()
之外的其他名称,因为这适用于存在此类流式运算符的任何对象。以上是关于如何将整数转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章