我有一种接受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)
}
此处TmpIdSet
为typedef std::set<uint64_t> TmpIdSet;
所以我的问题是如何将上述代码中的uint64_t
转换为const char *
?
答案 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;