Как конвертировать uint64_t в const char * в C ++?

У меня есть один метод, который принимает const char * как показано ниже —

bool get_data(const char* userid) const;

Теперь ниже мой цикл for, в котором мне нужно позвонить get_data метод мимоходом const char *, В настоящее время ниже для использования цикла uint64_t, Мне нужно конвертировать это uint64_t в const char * а затем перейти к get_data метод.

for (TmpIdSet::iterator it = userids.begin(); it != userids.end(); ++it) {
// .. some code
// convert it to const char *
mpl_files.get_data(*it)
}

Вот TmpIdSet является typedef std::set<uint64_t> TmpIdSet;

Итак, мой вопрос, как я должен конвертировать uint64_t в приведенном выше коде const char *?

1

Решение

Одним из способов было бы преобразовать его сначала в std::string с помощью станд :: to_string а затем получить доступ к необработанным данным, используя std::string::c_str() функция-член:

#include <string>

....

uint64_t integer = 42;
std::string str = std::to_string(integer);
mpl_files.get_data(str.c_str());
3

Другие решения

 mpl_files.get_data( std::to_string( *it ).c_str() )

Включают <string> заголовок. Для g ++ укажите -std=c++11,

1

По вопросам рекламы [email protected]