Если вы на платформе, чья системная библиотека C поддерживает C99, вы можете просто использовать printf( )
и scanf( )
со спецификатором формата %a
. Для чтения таких значений вы также можете использовать функции C99 strtod( )
, strtof( )
и strtold( )
:
float value = strtof(string, NULL, 0);
Вы можете при желании заменить NULL
на char **
, чтобы получить указатель на конец последовательности преобразованных символов, и 0
на известную базу для строкового представления (если вы установите базу в ноль, он будет выводить основание из формата, он будет отлично анализировать шестнадцатеричные числа с питоном, а также обрабатывать обычные десятичные числа с плавающей запятой)
Если ваш поставщик компиляторов / библиотек решил не заботиться о C99 (в основном MSVC), вам, вероятно, не повезет, пока эти функции не будут включены в стандарт C ++ (я считаю, что они находятся в проекте C +) + 0x, но я не совсем уверен).