cstring转为long64_c++ CString和内置类型之间的转换

本文详细介绍了在MFC编程环境下如何进行各种数据类型的相互转换,包括CString与其他基本类型如int、float、double之间的转换方法。此外还提供了一些实用的示例代码,帮助开发者快速掌握这些技巧。

最近在写一个程序,利用MFC,写一个界面,结果发现常常需要把一些变量转换为string,才能够在控件上显示(是否还有其他方法,顺便求各路大神指教)。因此,常常需要转换,每次都重新百度一遍,肯跌的啊,今天决心整理一下。主要内容来自

CString-->float、int、double

在MFC中可以采用CString内置的函数Format实现,形式如下

CString destination

destination.Format(_T("%??"),source);

%c 单个字符

%d 十进制整数(int)

%ld 十进制整数(long)

%f 十进制浮点数(float)

%lf 十进制浮点数(double)

%o 八进制数

%s 字符串

%u 无符号十进制数

%x 十六进制数

example(其他转换类似)
CString str;

int number=15;

str.Format(_T("%d"),number); //str="15"

str.Format(_T("%4d"),number); //str=" 15"(前面有两个空格)

str.Format(_T("%.4d"),number); //str="0015"

float、int、double-->CString

短整型(int) i = atoi(temp)

长整型(long) l = atol(temp)

浮点(double) d = atof(temp)

example

CString temp= "100";

int intResult;

intResult= atoi(temp);

float、int、double-->字符串

短整型(int) str = itoa(i,temp,10);

长整型(long) str = ltoa(l,temp,10);

10表示安装10进制转换

CString-->字符串指针

看了一下这个转换有好多争论,主要是这个写法

CSting cstr;

将其转换为字符串指针写成

(LPSTR)(LPCTSTR)cstr

另一种写法是
CString str;

CStringA strA(str);

strA.GetString();或strA.GetBuffer(0);

个人比较喜欢后面这种,比较清楚,MFC的宏用起来很不顺。。。。

快捷表

|转换类型 | |

|-----------|----------- -----|

|CString 转char|char *p = (LPSTR)(LPCTSTR)cstr|

|CString 转char* |char * charpoint; cstr=charpoint;

||或者char p = (LPSTR)(LPCTSTR)cstr;

|CString 转int/float|可以使用 atoi 、_atoi64 或 atol|

|CString 转string|string s(CString.GetBuffer());|

||GetBuffer() 后一定要ReleaseBuffer()|

|string 转CString|CString.format(”%s”, string.c_str());|

|string 转char|char p = string.c_str();|

|string 转char|char p = string.c_str();|

|char 转CString|CString.format(”%s”, char);|

|char 转string|string s(char );|

|char 转int/float|强制转换|

|int/float 转CString|s.Format(”%d”, i)|

|int/float 转char|强制转化|

|CString 转char[100]|char a[100];|

||CString str(”aaaaaa”);|

||strncpy(a,(LPCTSTR)str,sizeof(a));

|char 转CString|CString.Format(”%s”,char *)|

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值