要求是用VS2008 C++ MFC,控件Edit Control和一个Button,在Edit Control里写任意整数,然后对它进行简单计算,比如乘以2008,然后按下Button,结果在Messagebox里显示出来。
我思路是,从输入框里读出数字(这时类型是CString),把它转换成整形,经过计算,将结果转换成CString类型输出就可以了。
可是问题是,怎么将CString 转化成 int ?我试了好多方法,都不可以。比如 nstring.Format("%x",i)或者先转化成char类型,再用atoi()转化成整形,等等,编译器都报错!
各位,我真的没办法了,弄了2天了已经,网上写的其他方法都试过了,可到我这里怎么就不行???难道这VS2008真的软硬不吃?
跪求帮忙!叩求完美解答方案!!
那么怎么为Edit控件关联一个int型的变量呢?是在哪个控件里还是如何绑定?请给进一步指示!
VS2008 MFC:CString->int??
答案:3 悬赏:0 手机版
解决时间 2021-02-18 16:31
- 提问者网友:心牵心
- 2021-02-18 13:37
最佳答案
- 五星知识达人网友:一袍清酒付
- 2021-02-18 15:01
两种方法可以用:
1、可以为Edit控件关联一个int型的变量,然后通过使用UpdateData函数来更新数据。
2、直接用atoi函数:
CString str = "12345";
int a = atoi(str);
补充:
我知道你的问题所在了,VS2008默认的编码方式是Unicode,Unicode下不能用atoi,而要使用_wtoi
也可以直接使用_ttoi,它在 ANSI 编码系统中被编译成atoi(),而在 Unicode 编码系统中编译成_wtoi()。
例如:
CString str = _T("134258");
int a = _ttoi(str);
1、可以为Edit控件关联一个int型的变量,然后通过使用UpdateData函数来更新数据。
2、直接用atoi函数:
CString str = "12345";
int a = atoi(str);
补充:
我知道你的问题所在了,VS2008默认的编码方式是Unicode,Unicode下不能用atoi,而要使用_wtoi
也可以直接使用_ttoi,它在 ANSI 编码系统中被编译成atoi(),而在 Unicode 编码系统中编译成_wtoi()。
例如:
CString str = _T("134258");
int a = _ttoi(str);
全部回答
- 1楼网友:轻熟杀无赦
- 2021-02-18 15:57
其实你看它的提示,看看那个类型合适,你把nchar转换成它要求的类型就可以了。
就是个类型不一致。
- 2楼网友:骨子里都是戏
- 2021-02-18 15:42
CString 转 int 好像直接用atoi就可以的。
还是建议,你在最初定义Edit Control控件的时候把他定义成int型的而不是CString类型,
就不用类型转换了啊。这样还不容易出错
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯