Преобразование bstr_t в двойной
Как сделать преобразование bstr_t для удвоения в C++?
Я думал преобразовать в *char, затем *char, чтобы удвоить?
3 ответа
Решение
Если у тебя есть char*
или же wchar_t*
строка, используйте strtod
/wcstod
функции, чтобы прочитать двойной.
Например, используя предложение @Steve:
_bstr_t x;
double q = wcstod(x, NULL); // implicit conversion!
double p = strtod(x, NULL); // same
По-видимому _bstr_t
имеет неявные операторы преобразования как const char *
а также const wchar_t*
, так что вы можете использовать их непосредственно в функциях синтаксического анализа.
Вызовите wcstod или _wcstod_l, если вы хотите контролировать локаль.
bstr_t myBstr_t = L"1.234";
double d = wcstod(myBstr_t, NULL);
Вы можете привести к const char*
(для этого есть конвертер, который обрабатывает отображение из широких символов в MBCS под обложками), а затем конвертирует в удвоение по вашему желанию - например, stringstream::operator>>;;