2011-09-22 82 views
0
res = pRecord->Usn ; 
    char sres[1024]; 
    strcpy(sres,""); 
    ltoa(res,sres, 10); 

我有这个变量res,它的类型为DWORDLONG,我试图将它转换成一个字符串,以便我可以将它插入到数据库中。如何将DWORDLONG转换为char *?

另外,我将如何将其转换回来。有没有相当于ltoa,还是你自己写逻辑?

+2

这是我不喜欢定义自己的基本类型的做法的一个原因。我忘记了DWORDLONG *真正的*是什么。 – sje397

+0

@ sje397:重载来救援这里;) – PlasmaHH

+0

其64位无符号整数typedef ULONGLONG DWORDLONG; – roymustang86

回答

5

使用

boost::lexical_cast<std::string>(res); 

std::ostringstream o; 
o << res; 
o.str(); 

或C++ 11

std::to_string(res); 

为了要回在C++ 11你会用

res=std::stoull(str) 

or C * shiver *

char* end; 
res=strtoull(str.c_str(),&end,10); 
+0

你可以提到'strtoull()'回去... –

+0

@KerrekSB:现在好点? – PlasmaHH

+0

耶 - 顺便说一下,我从不使用'strtoull()'的可选指针。我猜你可以使用如果错误检查... –