将uint64_t转换为std :: string

Yak*_*kov 11 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;//????
}
Run Code Online (Sandbox Code Playgroud)

谢谢

dau*_*ama 19

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

std::to_string()
Run Code Online (Sandbox Code Playgroud)

它在标题中定义

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


Fle*_*exo 11

使用boost::lexical_caststd::ostringstream

例如:

str += boost::lexical_cast<std::string>(val);
Run Code Online (Sandbox Code Playgroud)

要么

std::ostringstream o;
o << val;
str += o.str();
Run Code Online (Sandbox Code Playgroud)


jco*_*der 5

我使用类似下面的代码。因为它是一个模板,所以它适用于任何支持 operator<< 到流的类型。

#include <sstream>

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

例如

uint64_t data = 123;
std::string mystring = tostring(data);
Run Code Online (Sandbox Code Playgroud)