可视化C++ strtoull 函数未定义



我正在使用Visual Studio 2012,strtoull未定义,而strtoul工作正常。我已经包括

#include <stdio.h>
#include <stdlib.h>

strtoull仍未确定。

某些版本的 MSVC 没有strtoull函数。

您可以尝试使用 _strtoui64 .

编辑:

如评论中所述,您也可以尝试切换到 C++11(如果可用)。

另一种处理方法(即可移植的,不需要 Boost,适用于 C++03):

std::string s = SOME_NUMER_IN_A_STRING_FORMAT;
unsigned long myValue = 0;
std::istringstream iss(s);
if (!(iss >> myValue))
{
    // error parsing number
}
else
{
    // myValue successfully parsed
}

请注意,如果要在 C++11 之前的编译器中使用 64 位整数,则必须使用特定于编译器的类型(流操作可能没有重载)。

我建议使用Boost Lexical Cast,因为它更便携。我认为它利用operator<<operator>>来管理大多数转化。

boost::lexical_cast<unsigned long long>( aString );左右

最新更新