C++字符串数字相互转换 (二)

2014-11-24 03:09:15 · 作者: · 浏览: 3
--------------------
#include
#include
#include


template
bool from_string(T &t,
const std::string &s,
std::ios_base & (*f)(std::ios_base&))
{
std::istringstream iss(s);
return !(iss>>f>>t).fail();
}

int main()
{
int i;
float f;
// from_string()的第三个参数应为如下中的一个
// one of std::hex, std::dec 或 std::oct
if(from_string(i, std::string("ff"), std::hex)){
std::cout< }
else{
std::cout<<"from_string failed"< }
if(from_string(f,
std::string("123.456"),
std::dec))
{
std::cout< }
else{
std::cout<<"from_string failed"< }
return 0;
}


/* 输出:
255
123.456
*/


四, int char * float and CString Covernt

1。 int <->CString

1) int ->CString

int n = 1;


CString str;

str.Format("%d",n);

2) CString->int

CString str = "1";

int n = atoi(str.GetBuffer(0));

2. char* 与CString

1)char*->CString

char sz[128];

CString str;

str.Format("%s",sz);

2) CString -> char*

CString str;

//int nLength = str.GetLength();

char* sz = str.GetBuffer(0);

3. float<->CString

1)float->CString

float f = 0.0;

CString str;

str.Format("%f",f);

2) CString->float

CString str = "0.0";

float f = atof(str.GetBuffer(0));
分享到: