3
有人可以告訴我一個有效的方法來驗證CString對象中存在的數字作爲一個有效的整數或浮動數字?如何驗證一個有效的整數和浮動數字在VC + + CString
有人可以告訴我一個有效的方法來驗證CString對象中存在的數字作爲一個有效的整數或浮動數字?如何驗證一個有效的整數和浮動數字在VC + + CString
bool IsValidInt(const CString& text, long& value)
{
LPCTSTR ptr = (LPCTSTR) text;
LPTSTR endptr;
value = _tcstol(ptr, &endptr, 10);
return (*ptr && endptr - ptr == text.GetLength());
}
bool IsValidFloat(const CString& text, double& value)
{
LPCTSTR ptr = (LPCTSTR) text;
LPTSTR endptr;
value = _tcstod(ptr, &endptr);
return (*ptr && endptr - ptr == text.GetLength());
}
編輯:修改代碼跟隨在評論中提供的很好的建議。
捕獲結果通常也很有用。大多數時候你打算使用數值,如果它驗證。 – MSalters 2010-10-27 08:31:20
只是注意到文本中的空字符串也返回true。在開始時檢查任何空字符串的附加檢查可能會有用。 – Clemens 2012-05-24 16:13:08
@ xml-tools.com,非常真實,我添加了一個'NUL'字符檢查來實現這一點。感謝:) – 2012-05-24 17:11:47