Преобразование uint64 для строкового представления в C++

Что самый легкий путь состоит в том, чтобы преобразовать значение uint64 в стандартную строку C++? Я проверил присваивать методы от строки и не мог найти никого, который принимает uint64 (8 байтов) как аргумент.

Как я могу сделать это?

Спасибо

6
задан Bilthon 20 May 2016 в 14:46
поделиться

6 ответов

#include <sstream>

std::ostringstream oss;
uint64 i;
oss << i;
std:string intAsString(oss.str());
11
ответ дан 8 December 2019 в 02:19
поделиться

Стандартный способ:

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() );
}
12
ответ дан 8 December 2019 в 02:19
поделиться

более описательный, чем потоки, я думаю, это lexical_cast

uint64 somevalue;
string result = boost::lexical_cast<string>(somevalue);
9
ответ дан 8 December 2019 в 02:19
поделиться

C ++: используйте строковый поток

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

4
ответ дан 8 December 2019 в 02:19
поделиться
std::string converted(reinterpret_cast<char*>(&my_int64),
                      reinterpret_cast<char*>((&my_int64)+1));
-2
ответ дан 8 December 2019 в 02:19
поделиться

Я думаю, вы хотите вывести его в строковый поток. Начните здесь:

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

4
ответ дан 8 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: