将 ASCII 字符串转换为 long long
我从 C++ 数据文件中获得了一些信息行。一项信息是 12 个字符长的数字。如何将其从字符串转换为 long long (我认为 long long 最适合此操作)而不丢失数据?
I've got some lines of information from a data-file in C++. One information is a 12 character long number. How can I convert this from string to long long (I think long long is most suitable for this) without data loss?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 C++ 中,没有
long long
数据类型。 它在 C99 中可用。但是,您可以使用int64_t
。包含
。使用
boost::lexical_cast
将字符串转换为int64_t
。或者您可以自己编写一个转换函数:
测试代码:
输出:
在线演示: http://ideone.com/nnSLp
In C++, there is no
long long
data type. It's available in C99. However, you can useint64_t
. Include<stdint.h>
.Use
boost::lexical_cast
to convert string intoint64_t
.Or you can write a convert function yourself as:
Test code:
Output:
Online demo : http://ideone.com/nnSLp
64 位整数足以表示任何 12 位十进制数(还有足够的空间)。因此,根据您的平台,
long
可能就足够了。如果是这种情况,您可以使用strtol
或strtoul
。如果您确实发现需要
long long
,请查看strtoll
和strtoull
。A 64-bit bit integer is enough to represent any 12-digit decimal number (with plenty of room to spare). Thus, depending on your platform, it could be that a
long
will suffice. If that's the case, you could usestrtol
orstrtoul
.If you do find that you need a
long long
, take a look atstrtoll
andstrtoull
.