Convert uint64_t to std::string
Question
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
Solution
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();
OTHER TIPS
In C++ 11 you may just use:
std::to_string()
it's defined in header
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);
string genString(uint64_t val)
{
char temp[21];
sprintf(temp, "%z", val);
return temp;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow