如何将 std::string
转换为 uint64_t
?如果字符串不包含 uint64_t
的纯表示,我还希望该函数抛出异常。例如,这些的转换应该抛出:
"NO: 9889"
"9889L"
"9889U"
"1e+22"
或以另一种方式表明它们不是纯粹的表示。我正在使用 C++98 和 boost(包括 boost::regex
)。
最佳答案
使用boost::lexical_cast
。如果数字无法解析或溢出,它将抛出一个 bad_lexical_cast
。
如果您切换到 C++11,标准中有一个新函数应该更快。
关于c++ - std::string 到 uint64_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18632809/