c++ - std::string 到 uint64_t

标签 c++ boost c++98

如何将 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/

相关文章:

c++ - 使用 OpenCV 在轮廓线上标记点

c++ - 将 matlab 内联命令转换为不同的

c++ - 在 C++ 可变参数模板中传递可变参数

模板友元类的 C++ 错误和

c++ - gets() 不允许先执行法院

c++ - 缩短 boost::function

c++ - *here* 的参数相关查找如何?

c++ - 如何保持 boost asio async 连续读取事件

c++ - 使用 boost 反序列化时输入流错误

c++ - 抛出可由 C++98 和 C++1x 编译的析构函数。有没有更好的办法?