[英]How to convert uint64_t to const char * in C++?
我有一種接受const char *
方法,如下所示 -
bool get_data(const char* userid) const;
現在下面是我的 for 循環,我需要通過傳遞const char *
來調用get_data
方法。 目前下面的 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 *
?
一種方法是首先使用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());
mpl_files.get_data( std::to_string( *it ).c_str() )
包括<string>
標頭。 對於 g++ 指定-std=c++11
。
您可以簡單地將其轉換為 const char *:
uint64_t integer;
const char * newpointer = (const char *)integer;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.