如何将字符串中的大整数转换为uint64_t?

dal*_*y42 0 c++ string

我有一个存储为字符串的大整数.我需要将它转换为整数(uint64_t).我试过了stoi(),但是在抛出一个实例后它崩溃了std::out_of_range.

该字符串的最大值为64位整数值,最大值为18,446,744,073,709,551,615(无符号long int的最大值).

除了(当然)手动之外我该怎么做?

bry*_*anm 7

只要字符串包含的数字小于std::numeric_limits<uint64_t>::max(),就std::stoull()可以完成您期望的操作.

(该std::stoull()函数是C++ 11中的新功能.)