MFC——常见的几种类型转换(CString、Int、Char、string)

* 从昨天开始打算做一个学习点云的构件,点云操作平台选择了MFC,但是在往MFC框架中添加功能的时候常常需要进行一些数据类型的转换,网上也有不少资料,但是感觉有些不够全面且不能一目了然地呈现给读者想要寻找的内容,现做一些笔记,方便自己以后查看,也希望可以帮助读者。*


1. CString向char类型转换

        //这里使用string时在MFC项目中可能会报错
        //需要在目标文件头部添加命名空间(using namespace std;)
        //若此时让然报错需要添加引用(#include "string")
        CString str = "hello";
        string st = (string)(CStringA)str;
        int len = st.length();
        char* ch = (char*)malloc(len); //动态申请char*大小的空间
        for(int i = 0 ; i <len ; i++)
        {
        ch[i] = st[i];
        }
        ch[len] = '\0';

2. int向CString类型的转换

  /*若转换时Format函数第一个参数报错可能是因为项目字符集有问题,可以修改为“使用多字节字符集”;或者将参数"%d"改为_T("%d")*/

     int myInt;//目标int类型
     CString myCString;//目标CString类型
     myCString.Format("%d",myInt);

/*幻换函数,有俩个参数(前一个%d表示十进制正数,不加则不能将myInt格式为CString;第二个参数即为需要转换的int类型变量)*/

Formt简单介绍:
有俩种形式,分别是俩个参数和三个参数,三个参数的线程安全但是不常用,俩个参数的较为常用,需要着重掌握。

3. CString向int类型转换 

 int myInt;//目标int类型
 CString myCString;//目标CString类型
 myInt= _ttoi(myCString);

4. int向string类型转换
使用C++函数std::to_string可以实现转换,std::to_string不但可以将int转换成string,对于常用的基本数据类型都能进行转换,如float、double、long等。

int myInt;//目标int类型
string to_string (myInt);

5. string向int类型转换

std::string str;  //目标string类型
int myInt = std::stoi(str); 

6. char向CString类型转换

CString str ="hello";  
char * mychar =str.GetBuffer(str.GetLength());  
str.ReleaseBuffer();  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值