2008-11-19 175 views
9

我正在使用VS 2008创建一个C++ DLL(未管理)项目,我需要将一个char *转换为一个long long类型。有没有简单的方法来做到这一点?将字符串转换为long long

感谢提前:)

+0

看来这个问题每周弹出左右: - | – 2008-11-20 03:40:57

回答

5

尝试_atoi64.这需要char*并返回__int64

+1

买家小心:atoi不安全,也不提供任何界限检查! – Alan 2008-11-19 23:33:54

+0

是的,_atoi64可能不是一个好选择。如果您使用的是.NET框架,那么为什么不在字符串中使用ToInt64而不是char *。如果不是,我认为strtol或它是equiv是当前标准的路线,并且比atoi更安全。 – 2008-11-19 23:51:40

15

最简单的方法是使用的std :: stringstream的(这也是最安全类型...)

std::stringstream sstr(mystr); 
__int64 val; 
sstr >> val; 

您可能需要针对此64位应用程序的工作。

C++ FAQ

7

如果您使用升压,lexical_cast的是去,在我看来的方式。

long long ll = boost::lexical_cast<long long>(mystr) 
1

另一种选择是使用字符串库中的stoll()。采用C++字符串。

long long ll = std::stoll(mystr); 

Docs