Как кросс-платформенный преобразователь char * в long long (64-битный)?

StackOverflow https://stackoverflow.com/questions/7388410

Вопрос

Как преобразовать строку 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 для получения дополнительной информации.В качестве альтернативы используйте код генерирующего кода для анализа числового значения.

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top