如何跨平台将 char* 转换为 long long (64位)?
如何将 char* 字符串转换为 long long(64 位)整数?
我使用 MSVC 和 GCC 编译器,我的平台是 Windows、Linux 和 MAC OS。
谢谢。
How can I convert a char* string to long long (64-bit) integer?
I use MSVC and GCC compilers and my platforms are Windows, Linux and MAC OS.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用
strtoull
表示无符号 long long,使用strtoll
表示有符号 long long。在任何 Unix(Linux、Mac OS X)上,输入man strtoull
或man strtoll
以获取其描述。由于两者都是 C99 标准的一部分,因此它们应该可以在任何支持 C 的系统上使用。Linux 手册页也 有关于如何使用它们的示例。Use
strtoull
for unsigned long long orstrtoll
for signed long long. On any Unix (Linux, Mac OS X), typeman strtoull
orman strtoll
to get its description. Since both are part of the C99 standard they should be available on any system that supports C. The Linux man pages also have examples on how to use them.对于具有支持 long long int 的编译器的 C++,我将使用 std::istringstream 对象。例如:
For C++ with a compiler that supports
long long int
, I would use astd::istringstream
object. For instance:boost::lexical_cast
可能是最简单的(在代码中)。请参阅http://www.boost.org/doc/libs/ 1_47_0/libs/conversion/lexical_cast.htm 了解更多信息。或者使用stringstream
解析出数值。boost::lexical_cast
is probably the simplest (in code). See http://www.boost.org/doc/libs/1_47_0/libs/conversion/lexical_cast.htm for more info. Alternately use astringstream
to parse out the numeric value.