簡體   English   中英

如何在 C++ 中將 uint64_t 轉換為 const char *?

[英]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)
}

這里TmpIdSettypedef 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM