gpt4 book ai didi

c++ - 从包含十进制数的字符串变量中获取值,该十进制数表示大约 64 GB 的值

转载 作者:行者123 更新时间:2023-11-27 23:11:22 25 4
gpt4 key购买 nike

我有一个关于将字符串转换为值的问题。

以下是我试过的示例代码。

我正在 C++ Builder XE4 上尝试这个。

String strSize = L"64420392960"; // 64GB

size_t size;

size = strSize.ToDouble(); // returns 4290850816

char *end_ptr;
size = strtol(AnsiString(strSize).c_str(), &end_ptr, 10); // returns 0

ToDouble() 和 strtol() 均无效。

我知道 strtol 不起作用,因为 long 类型最大为 4.3GB。

C++ Builder XE4有没有什么函数可以在处理64GB或者几百GB(比如500GB)的时候把strSize转换成size_t的值?

最佳答案

您没有 64GB 的字符串,这将是一个大小为 64 GB 的字符串。您有一个包含十进制数的字符串,表示大约 64 gig 的值。

您正在寻找的标准函数是 strtoll,它返回一个 long long 结果。自 1999 年标准以来,它一直是标准 C 函数,如果我没记错的话,它自 2011 年起被添加到 C++ 标准中。

(问题是C++ Builder XE4是否支持strtoll。)

如果您系统上的 size_t 只有 32 位,则无法获得那么大的 size_t 值。如果是 64 位,strtoll 应该可以解决问题。

关于c++ - 从包含十进制数的字符串变量中获取值,该十进制数表示大约 64 GB 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20110262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com