Как кросс-платформенный преобразователь char * в long long (64-битный)?
-
29-10-2019 - |
Вопрос
Как преобразовать строку char * в длинное длинное (64-битное) целое число?
Я использую компиляторы MSVC и GCC, а мои платформы - Windows, Linux и MAC OS.
Спасибо.
Решение
Используйте strtoull
для длинных длинных данных без знака или strtoll
для длинных длинных данных со знаком.В любом Unix (Linux, Mac OS X) введите man strtoull
или man strtoll
, чтобы получить его описание.Поскольку оба являются частью стандарта C99, они должны быть доступны в любой системе, поддерживающей C. Справочные страницы Linux также есть примеры их использования .
Другие советы
Для C ++ с компилятором, который поддерживает long long int
, я бы использовал объект std::istringstream
.Например:
boost::lexical_cast
, вероятно, самый простой (в коде).См. http://www.boost.org/doc/libs/1_47_0 / libs / conversion / lexical_cast.htm для получения дополнительной информации.В качестве альтернативы используйте код генерирующего кода для анализа числового значения.