MFC中如何吧CString类型转换为double或int型?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中如何吧CString类型转换为double或int型?相关的知识,希望对你有一定的参考价值。

修改方式为: 在解决方案窗口右键工程名-->属性->General项(我用的是英文的)-->字符集, 选择多字节那个就行了。

1、转成int:int a = atoi(str.GetBuffer());

2、转成double:double b = atof(str.GetBuffer())。

CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。

mfc是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数,并且包含一个应用程序框架,以减少应用程序开发人员工作量。vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它你可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。有时人们说vc呢也指它的内部编译器,集成开发环境必须有一个编译器内核,要不有什么用,例如DevC++其中一个编译器内核就是gcc。

MFC除了是一个类库以外,还是一个框架,你应该试过,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了mfc内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但是MFC的封装很浅,所以效率上损失不大,灵活性还可以,虽然也有很多缺陷,但还是一个比较好的东西。

参考技术A 首先你要确定你的工程字符集用的是多字节而不是unicode才能用下面的方法, 因为vs2008/2010默认使用的是unicode编码. 修改方式为: 在解决方案窗口右键工程名-->属性->General项(我用的是英文的)-->字符集, 选择多字节那个就行了
CString str;
转成int: ;int a = atoi(str.GetBuffer());
转成double: double b = atof(str.GetBuffer());

// 如果你坚持要用unicode的话, 你就用下面两个函数:
转成int: ;int a = _wtoi(str.GetBuffer());
转成double: double b = _wtof(str.GetBuffer());

MFC char*如何转换为CString,并显示在edit box中

edit 定义了一个CString属性的值m_edit

现在有一个字符串指针char* str="abcde"
要怎么做才能将str指向的值赋给m_edit

我可以直接等于

mode.SetString(str);这个也行

参考技术A m_edit = str;
UpdateData(FALSE);

前提是通过ClassWizard绑定的成员变量,也就是说DoDataExchange中有这么一行:
DDX_Text(pDX, IDC_EDIT1, m_edit);本回答被提问者采纳
参考技术B 要看编码方式,UNICODE的话,就要把str转换到宽字符。
m_edit = CA2W(str);追问

CA2W 需要头文件吗?是没有声明的变量

以上是关于MFC中如何吧CString类型转换为double或int型?的主要内容,如果未能解决你的问题,请参考以下文章

C++ MFC CString怎么转换成Double

C++ MFC double 到 CString

MFC,CString与intdouble 转换

C++ string 转化为LPCTSTR

CString .Format

mfc中,如何将CString 转换成 string