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的封装很浅,所以效率上损失不大,灵活性还可以,虽然也有很多缺陷,但还是一个比较好的东西。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-11
首先你要确定你的工程字符集用的是多字节而不是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());本回答被提问者采纳
第2个回答  2011-11-21
先(LPCTSTR)你的CString,然后atof或者atoi它,前提是你的CString必须是有效的double或者int。
第3个回答  2011-11-20
char *s; double x; int i; long l;
s = " -2309.12E-15"; /* Test of atof */
x = atof( s );
printf( "atof test: ASCII string: %s\tfloat: %e\n", s, x );
这是msdn上关于ASCII的一个例子,相信可以帮助到你了吧

MFC中如何吧CString类型转换为double或int型??
修改方式为: 在解决方案窗口右键工程名-->属性->General项(我用的是英文的)-->字符集, 选择多字节那个就行了。1、转成int:int a = atoi(str.GetBuffer());2、转成double:double b = atof(str.GetBuffer())。CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MF...

怎样吧一个CString 转化为 double
字符串转化为double:CString s="123456.789";double d = atof(s);double转化字符串:double d = 123456.789;CString s;方法一:s.Format("%f",d);方法二:s = ftoa(d);

vs2005下 mfc CString 转 double的方法!
double strtod(const char *nptr,char **endptr); \/\/转为double \/\/\/例子 CString str=_T("12345");double dNum = strtod(str,NULL);\/\/\/结果 dNum = 12345 .0000...

请问下,使用MFC、怎么把字符串转化为浮点数进行存储??程序段或者解析过 ...
字符型转浮点型用atof 或者strtod(后者安全点),它的默认类型是double型。用法:比方说你定义了CString的对象str,要想转换为浮点型可以定义一个浮点型变量例如double a = atof(str)就可以了

MFC中CString的Format方法使用技巧
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。步骤\/方法 先看看Format用于...

MFC编程中CString转float问题!
35689转成356.89:使用atoi函数把字符串转换为整数35689,然后再除以100就可以了 然后与另个float进行计算得到结果之后再转换成CString,比如258.75转成25875:可以使用CString的Format函数实现。

mfc中一个CString 型的十六进制数如何转为int型
CString str = "0x1a";int nValude = 0;sscanf(str.GetBuffer(0),"%x",&nValude);

vs2010 中 MFC::CString 如何和int相互转化
CString str = _T("123");int i = _ttoi(str);=== int i = 123;CString str ;str.Format(_T("%d"), i);

MFC常见数据类型的转换
在MFC编程中,数据类型转换是常见操作。为了简化转换过程,我将常用类型如CString、string、TCHAR*、char*、const char*、int等的相互转换封装成函数,目前应用中未遇到异常问题。一、代码实现 定义类型转换函数,如TypeFormat.h:cpp class TypeConverter { public:static CString ToCString(const string& ...

CStringint型
要将CString类型的数值转换为整数,最简便的方法是利用标准的字符串到整数的转换函数。尽管有人可能推荐_atoi()函数,但通常这不是最佳选择。如果你处理的是Unicode字符,应该使用_ttoi(),这个函数在ANSI编码系统中等同于_atoi(),而在Unicode系统中转换为_wtoi()。还有其他选项,如_tcstoul()和_tcstol...

相似回答