关注微信公众号“二进制小站”~~获取更多分析~~(文末二维码~~)
文章转自:http://blog.csdn.net/manji_lee/article/details/7556649
1. Cstring与int 的转换
1)Cstring转int
Cstring cstr="12345";
int a=atoi(cstr);
int 转Cstring
Cstring cstr;
int a=8;
cstr.format(”%d”, a);
3. Cstring与float的转换
Cstring转float
Cstring cstr="8.67";
float a=atof(cstr);
float 转Cstring
Cstring cstr;
float a=8.00;
cstr.format(”%.2f”, a);
4. Cstring与double的转换
Cstring转double
Cstring cstr="8.89475";
double a=atof(cstr);
double转Cstring
Cstring cstr;
doulbe a=8.0067;
cstr.format(”%.4f”, a);
5. Cstring与string的转换
Cstring转string
Cstring cstr="Germany";
string cs(cstr.GetBuffer());
string转Cstring
Cstring cstr;
string cs="Germany";
cstr.format(”%s”, cs.c_str());
另外:CString 转 char*
CString strfilename = L"myfile.xml";
char* filename;
USES_CONVERSION;
filename = T2A(strfilename);
注意:USES_CONVERSION宏要慎用;
USES_CONVERSION是ATL中的一个宏定义。用于编码转换(用的比较多的是CString向LPCWSTR转换)。在ATL下使用要包含头文件#include "atlconv.h"
使用USES_CONVERSION一定要小心,它们从堆栈上分配内存,直到调用它的函数返回,该内存不会被释放。如果在一个循环中,这个宏被反复调用几万次,将不可避免的产生stackoverflow。