CString sSJ="8.3";CString sGS="-12+20";经得到的结果是 8.3-12+20怎么做?
解决方案 »
- 基于对话框的Scrollview重绘时闪烁
- 为啥我CComboBox不显示下拉的列表框?
- 为什么初始化窗口最大化后部分图象绘制被白色方形覆盖,而在对话框窗口为还原状态时,在控件绘制好后再最大化就没问题?
- 如何判断串口接收到的数据
- 如何定时触发一个事件啊??
- 如何让一个监控程序在系统启动时(登陆之前)就自动运行?请各位高手帮帮小妹啊。谢谢!急..........................
- POS机支付的全过程?在线等待
- 高分求教
- 哪有中文COM和ATL下载?UP有分!早回答早给分!
- VC6在win98中运行时的问题
- windows备份/还原指定用户的用户配置文件(非BDD,纯API)?
- IShellFolder不能正确枚举我的电脑...
所以写作CString n=sSj+sGs;
或是 sSj+=sGS;都行
cstrInfo.Formart("%s%s", sSJ, sGS) ;
CString sSJ="8.3";
CString sGS="-12+20";
CString sJG;
sJG=sSJ+sGS;
显示的结果是:8.3-12+20而并非是16.3
当然,如果不是想那么麻烦也可以按如下方法来做:
float MathCstring(CString m_strIn)
{
CString m_strTemp1=m_strIn,m_strTemp2;
int m_iLen=m_strTemp1.GetLength();
float m_fResult;
while (m_iLen!=0)
{
在m_strTemp1中按由左至右的顺序Search运算符,并记录位置到i;
m_strTemp2=m_strTemp1.left(i);
m_strTemp1=m_strTemp1.Right(i);
m_iLen=m_strTemp1.GetLength();
对m_strTemp2进行Str到Double的转换;//请查MSDN资料
依据符号和m_strTemp2的值计算m_fResult;
}retrun m_fResult;
}
CString sSJ="8.3";
CString sGS="-12+20";
CString sJG;
sJG=sSJ+sGS;
number=atoi(sJG);//类型转换
将CString类型转化成int就可以了。
atoi不行吧,可能存在浮点的问题
还是得通过分别扫描两个字符串,提取其中的数字和符号,然后定义规则进行运算
其实就是运用编译原理的词法分析和语法分析中的表达式求值部分来解决。
搞本编译教材看看,网上也有例子的。