Convert uint64_t to std::string

你说的曾经没有我的故事 提交于 2019-12-09 08:59:01

问题


How can I transfer uint64_t value to std::string? I need to construct the std::string containing this value For example something like this:

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

Thank you


回答1:


use either boost::lexical_cast or std::ostringstream

e.g.:

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

or

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



回答2:


In C++ 11 you may just use:

std::to_string()

it's defined in header

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




回答3:


I use something like this code below. Because it's a template it will work with any type the supports operator<< to a stream.

#include <sstream>

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

for example

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



回答4:


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


来源:https://stackoverflow.com/questions/7348051/convert-uint64-t-to-stdstring

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!