可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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; }