问题
Can some one tell me a valid way to validate a number present in CString object as either a valid integer or floating number?
回答1:
Use _tcstol() and _tcstod():
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());
}
EDIT: Modified the code to follow the excellent suggestions provided in the comments.
来源:https://stackoverflow.com/questions/4030337/how-to-validate-a-valid-integer-and-floating-number-in-vc-cstring