将uint64_t转换为std :: string

时间:2011-09-08 12:32:08

标签: c++ string std uint64

如何将uint64_t值传递给std :: string? 我需要构造包含此值的std :: string 例如:

void genString(uint64_t val)
{
      std::string str;
      //.....some code for str 
      str+=(unsigned int)val;//????
}

谢谢

4 个答案:

答案 0 :(得分:16)

在C ++ 11中,您可以使用:

std::to_string()

在标题

中定义

http://www.cplusplus.com/reference/string/to_string/

答案 1 :(得分:10)

使用boost::lexical_caststd::ostringstream

e.g:

str += boost::lexical_cast<std::string>(val);

std::ostringstream o;
o << val;
str += o.str();

答案 2 :(得分:3)

我使用下面的代码。因为它是一个模板,它将适用于任何类型的支持运算符&lt;&lt;到了溪流。

#include <sstream>

template <typename T>
std::string tostring(const T& t)
{
    std::ostringstream ss;
    ss << t;
    return ss.str();
}

例如

uint64_t data = 123;
std::string mystring = tostring(data);

答案 3 :(得分:1)

string genString(uint64_t val)
{
   char temp[21];
   sprintf(temp, "%z", val);
   return temp;
}