14

如何将 uint64_t 值传输到 std::string?我需要构造包含这个值的 std::string 例如像这样的东西:

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

谢谢

4

4 回答 4

28

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

std::to_string()

它在标题中定义

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

于 2014-11-06T14:11:05.387 回答
12

使用boost::lexical_caststd::ostringstream

例如:

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

或者

std::ostringstream o;
o << val;
str += o.str();
于 2011-09-08T12:33:59.147 回答
5

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

#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);
于 2011-09-08T13:08:32.603 回答
2
string genString(uint64_t val)
{
   char temp[21];
   sprintf(temp, "%z", val);
   return temp;
}
于 2011-09-08T12:43:37.693 回答