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