Как проверить правильное целое и плавающее число в VC ++ CString - PullRequest
3 голосов
/ 27 октября 2010

Может ли кто-нибудь сказать мне правильный способ проверки числа, присутствующего в объекте CString, в качестве действительного целого или плавающего числа?

1 Ответ

6 голосов
/ 27 октября 2010

Используйте _tcstol () и _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());
}

РЕДАКТИРОВАТЬ: Изменен код, чтобы следовать предоставленным отличным предложениямв комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...