C++ 转换为std :: string

示例

通过将对象插入std::ostringstream对象(使用stream insertion操作符<<),然后将整个std::ostringstream转换为std::string,可以使用std::ostringstream将任何流式类型转换为字符串表示形式。

对于int例如:

#include <sstream>

int main()
{
    int val = 4;
    std::ostringstream str;
    str << val;
    std::string converted = str.str();
    return 0;
}

编写自己的转换函数,简单:

template<class T>
std::string toString(const T& x)
{
  std::ostringstream ss;
  ss << x;
  return ss.str();
}

可以,但是不适用于对性能有严格要求的代码。

如果需要,用户定义的类可以实现流插入运算符:

std::ostream operator<<( std::ostream& out, const A& a )
{
    // 写出a的字符串表示形式
    return out; 
}
C ++ 11

除了流,从C ++ 11开始,您还可以使用std::to_string(和std::to_wstring)函数,该函数对于所有基本类型均已重载,并返回其参数的字符串表示形式。

std::string s = to_string(0x12f3);  //在此之后,字符串包含"4851"