Umwandeln eines uint64 bespannen in C ++
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
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:
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