C++将字符串转换为uint64_t

Cau*_*chy 14 c++ string uint64

我试图从字符串转换为uint64_t整数.stoi返回一个32位整数,因此在我的情况下它不起作用.还有其他解决方案吗?

Gam*_*bit 19

尝试std::stoull使用C++ 11或更高版本.

这篇文章也可能有所帮助.我没有把它标记为重复,因为另一个问题是关于C.

  • 好吧,c ++ 11可以认为是当前的标准,因为已经有好几年了。 (2认同)
  • @Gambit,您返回的是一个 unsigned long long ,它不是 uint64_t ,它不一定是 64 位,具体取决于它的编译位置。如果 unsigned long long 不是 64 位,为什么你的解决方案仍然有效。 (2认同)
  • @Cauchy,它必须至少为64位,因此它可以容纳64位整数 (2认同)

πάν*_*ῥεῖ 13

你试过了吗

uint64_t value;
std::istringstream iss("18446744073709551610");
iss >> value;
Run Code Online (Sandbox Code Playgroud)

观看现场演示


这也可能适用于过时的标准.