将long转换为char*const < C++ > 中,将长< />代码转换为 char * const < />代码的正确方法是什么?

将long转换为char*const < C++ > 中,将长< />代码转换为 char * const < />代码的正确方法是什么?,c++,C++,编辑: 编辑: 在C++中,将整数转换为字符串的“正确”方式是使用String流。例如: #include <sstream> std::ostringstream oss; oss << "Thread_Id_" << l; ThirdPartyFunction(oss.str().c_str()); 要将long作为chars的数组“查看”,请执行以下操作: char * const p = reinterpret_cast<char * con

编辑:

编辑: 在C++中,将整数转换为字符串的“正确”方式是使用String流。例如:

#include <sstream>

std::ostringstream oss;
oss << "Thread_Id_" << l;
ThirdPartyFunction(oss.str().c_str());
要将
long
作为
char
s的数组“查看”,请执行以下操作:

char * const p = reinterpret_cast<char * const>(&your_long);
long l=0x7fff0000;//或者别的什么
char const*p=重新解释(l);
另一种可能的“纯”解决方案是使用snprintf

long number = 322323l;
char buffer [128];
int ret = snprintf(buffer, sizeof(buffer), "%ld", number);
char * num_string = buffer; //String terminator is added by snprintf

你可能想看看,这是错误的
char * const p = reinterpret_cast<char * const>(&your_long);
std::ostringstream oss;
oss << your_long;
std::string str = oss.str();
// optionaly:
char * const p = str.c_str();
long l=0x7fff0000;   // or whatever
char const *p = reinterpret_cast<char const *>(l);
long number = 322323l;
char buffer [128];
int ret = snprintf(buffer, sizeof(buffer), "%ld", number);
char * num_string = buffer; //String terminator is added by snprintf