繁体   English   中英

std :: string到uint64_t

[英]std::string to a uint64_t

如何将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,那么标准中的新功能应该更快。

forisdigit()后跟一个strtoll()始终是一个选项。

也许不是单行,但是在stringutils.cpp中写一个很好的函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM