读书人

怎么判断CString转int或float失败

发布时间: 2013-01-04 10:04:16 作者: rapoo

如何判断CString转int或float失败?
如题:请问如何判断CString转int或float失败,并返回默认值?


//读取当前节点子项的内容,转换为浮点数
float GetSubItemValueFloat(const CString paramName, float defauleValue)
{
CString res = GetSubItemValue(paramName);
USES_CONVERSION;
return (float)atof(T2A(res));
}

//读取当前节点子项的内容,转换为int
int GetSubItemValueInt(const CString paramName, int defauleValue)
{
CString res = GetSubItemValue(paramName);
return _ttoi(res);
}

上面的函数转换是可以的,但如果不能转换则返回0,但我想让他返回默认值defauleValue。请问该如何判断?
[解决办法]
打印一下CString的串看看是不是你想要的,另外INT不要太长溢出,我觉得不会有问题的
[解决办法]
自己判断:
1、字符串是否全部是数字或符号与小数点
2、长度是否超长
如果非法就返回你需要的数据
[解决办法]
判断失败的话,得到转换好的值,把他format成cString,然后比较要转换的cstring和转换好的int值得cstring是否完全相同,Compare一下
[解决办法]
只能自己再做一个判断了
[解决办法]
比较前几位也可以,截断一下字符串

读书人网 >VC/MFC

热点推荐