在C ++中将uint64转换为字符串

时间:2010-06-24 19:53:25

标签: c++ string uint64

将uint64值转换为标准C ++字符串的最简单方法是什么?我从字符串中检出了assign方法,并且找不到任何接受uint64(8字节)作为参数的人。

我该怎么做?

由于

7 个答案:

答案 0 :(得分:12)

标准方式:

std::string uint64_to_string( uint64 value ) {
    std::ostringstream os;
    os << value;
    return os.str();
}

如果您需要优化方法,那么您可以使用以下方法:

void uint64_to_string( uint64 value, std::string& result ) {
    result.clear();
    result.reserve( 20 ); // max. 20 digits possible
    uint64 q = value;
    do {
        result += "0123456789"[ q % 10 ];
        q /= 10;
    } while ( q );
    std::reverse( result.begin(), result.end() );
}

答案 1 :(得分:11)

#include <sstream>

std::ostringstream oss;
uint64 i;
oss << i;
std:string intAsString(oss.str());

答案 2 :(得分:9)

比我认为lexical_cast

的流更具描述性
uint64 somevalue;
string result = boost::lexical_cast<string>(somevalue);

答案 3 :(得分:4)

我认为您想将其输出到字符串流。从这里开始:

http://www.cppreference.com/wiki/io/sstream/start

答案 4 :(得分:4)

C ++:使用字符串流

C:sprintf(缓冲区,“%I64ld”,myint64);

答案 5 :(得分:2)

C ++ 11将Frunsi提到的to_string函数标准化为std::to_string

#include <string>

int main()
{
  uint64_t value = 128;
  std::string asString = std::to_string(value);
  return 0;
}

答案 6 :(得分:-2)

std::string converted(reinterpret_cast<char*>(&my_int64),
                      reinterpret_cast<char*>((&my_int64)+1));