将 char 数组(c 字符串)转换为 C 中的 _int64
我尝试使用此函数将字符串转换为 _int64 但它不起作用:
_int64 lKey = _atoi64("a1234");
lKey 值始终为零并且不起作用,除非字符串只是像“1234”这样的数字
我使用 C++ 字符串流读取解决方案,但我想写我的在纯C中的应用
I tried this function to convert a string to _int64 but it didn't work :
_int64 lKey = _atoi64("a1234");
lKey value is always zero and doesn't work except the string is only digits like "1234"
I read solutions using C++ string stream but I want to write my application in pure C
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该功能确实有效。正如文档所述:
所以你必须确保传递了正确的字符串。否则,返回值将始终为零。就该函数而言,“a1234”不是正确的字符串,几乎每个“转储”解析函数都无法解析它。
The function does indeed work. As the documentation states:
So you have to make sure that a correct string is passed. Otherwise, the return value will always be zero.
"a1234"
is not a correct string in terms of this function and pretty every "dump" parsing function will fail to parse it.如果您认为您的数字是十六进制,并且 C99 没问题,您可能想尝试使用
strtoull()
代替:或者使用自动检测:
If you consider your number to be hexadecimal, and C99 is okay, you might want to try
strtoull()
instead:Or with auto-detect: