如何在C ++中将uint64_t转换为const char *?

时间:2014-05-29 23:54:04

标签: c++ char-pointer

我有一种接受const char *的方法,如下所示 -

bool get_data(const char* userid) const;

现在,下面是我的for循环,我需要通过传递get_data来调用const char *方法。目前低于for循环使用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)
}

此处TmpIdSettypedef std::set<uint64_t> TmpIdSet;

所以我的问题是如何将上述代码中的uint64_t转换为const char *

3 个答案:

答案 0 :(得分:3)

一种方法是首先使用std::to_string将其转换为std::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());

答案 1 :(得分:1)

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

包含<string>标题。对于g ++,请指定-std=c++11

答案 2 :(得分:-1)

你可以简单地转换为 const char *:

uint64_t integer;
const char * newpointer = (const char *)integer;