Как преобразовать строку «0xAp-2» в удвоенное значение 2,5, используя функцию библиотеки std - PullRequest
0 голосов
/ 27 июля 2011

У меня есть строка, содержащая "0xAp-2".Я хочу преобразовать это в двойное значение:

#include <iostream>
#include <cstdio>

int main()
{
    char array[] = "0xAp-2";

    double a;

    sscanf(array, "%lf", &a);

    std::cout << a << "\n";
}

Я пробовал и atof, и sscanf, и не могу заставить его работать.Я извиняюсь, если ответ очевиден, но я уже пробовал искать в Google такие термины, как "sscanf" и "шестнадцатеричный с плавающей точкой".

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

Я полагаю, что функция strtod должна анализировать двоичную научную запись.

1 голос
/ 27 июля 2011

Если что-то собирается сделать, формат %A или %a из C99 должен выполнить эту работу.

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