Преобразование 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>>;;

Другие вопросы по тегам