Я использую VS 2008 для создания проекта C++ DLL (не управляемый), и мне нужно преобразовать char * в длинный длинный тип. Есть ли простой способ сделать это?конвертировать строку в длинную длинную
Заранее спасибо :)
Я использую VS 2008 для создания проекта C++ DLL (не управляемый), и мне нужно преобразовать char * в длинный длинный тип. Есть ли простой способ сделать это?конвертировать строку в длинную длинную
Заранее спасибо :)
Попробуйте _atoi64.
Это займет char*
и возвращает __int64
.
Покупатель берегитесь: atoi не безопасен по типу и не предлагает никаких ограничений! – Alan 2008-11-19 23:33:54
Да, _atoi64, вероятно, не очень хороший выбор. Если вы используете .NET framework, почему бы не использовать ToInt64 для строки вместо char *. Если нет, я думаю, что strtol или equiv - это текущий стандартный способ перехода и безопаснее, чем atoi. – 2008-11-19 23:51:40
Самый простой способ заключается в использовании зЬй :: stringstream (это также самый типизированного ...)
std::stringstream sstr(mystr);
__int64 val;
sstr >> val;
Вам может потребоваться целевой 64-битное приложение для этого работать.
Если вы используете импульс, lexical_cast это путь, на мой взгляд.
long long ll = boost::lexical_cast<long long>(mystr)
Другой вариант - использование stoll(), найденного в библиотеке строк. Принимает строку C++.
long long ll = std::stoll(mystr);
Кажется, этот вопрос всплывает каждую неделю или так: - | – 2008-11-20 03:40:57