wcstod с проверкой диапазона
От: stalcer Россия  
Дата: 23.01.04 08:20
Оценка:
Функция wcstod проверяет диапазон значений, т.е.:

void p() {
    setlocale(LC_ALL, "C");
    wchar_t *endptr;
    double d = wcstod(L"5.7E+99999999", &endptr);

    if (d == HUGE_VAL || d == -HUGE_VAL) {
        // error
    };
}


А как это сделать с wistringstream? А как сделать для int, например. Если с потоками невозможно, то как по другому преобразовывать строку в число с проверкой диапазона и чтобы локаль использовалась классическая и чтобы не нужно было менять глобальную локаль (как С-шную так и С++-ую.).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.