Frage

Was ist der einfachste Weg, um einen uint64 Wert in eine standart C ++ Zeichenfolge zu konvertieren? Ich überprüfte die assign Methoden aus der Zeichenfolge aus und konnte niemanden finden, der eine uint64 (8 Byte) als Argument akzeptiert.

Wie kann ich das tun?

Danke

War es hilfreich?

Lösung

#include <sstream>

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

Andere Tipps

Die Standardmethode:

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

Wenn Sie ein optimiertes Verfahren benötigen, dann können Sie diese benutzen:

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() );
}

mehr beschreibend als Strom ich denke, ist lexical_cast

uint64 somevalue;
string result = boost::lexical_cast<string>(somevalue);

Ich denke, die Sie ausgeben wollen, dass es zu einer string. Starten Sie hier:

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

C ++: Verwenden Sie ein string

C: sprintf (buffer, "% I64ld", myint64);

C ++ 11 standardisiert die to_string Funktion von Frunsi als std::to_string erwähnt:

#include <string>

int main()
{
  uint64_t value = 128;
  std::string asString = std::to_string(value);
  return 0;
}
std::string converted(reinterpret_cast<char*>(&my_int64),
                      reinterpret_cast<char*>((&my_int64)+1));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top