将字符串转换为长字符串 我使用VS 2008创建C++ DLL(未托管)项目,我需要将char *转换成长long类型。有没有简单的方法

将字符串转换为长字符串 我使用VS 2008创建C++ DLL(未托管)项目,我需要将char *转换成长long类型。有没有简单的方法,c++,string,visual-studio-2008,C++,String,Visual Studio 2008,提前感谢:)尝试\u atoi64。这将获取char*并返回\u int64最简单的方法是使用std::stringstream(它也是最安全的类型…) 您可能需要以64位应用程序为目标,才能使其正常工作 在我看来,如果您使用的是boost,词法强制转换是一个不错的选择 long long ll = boost::lexical_cast<long long>(mystr) long ll=boost::词法转换(mystr) 另一个选项是使用字符串库中的stoll()。获取C++

提前感谢:)

尝试
\u atoi64。
这将获取
char*
并返回
\u int64

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

您可能需要以64位应用程序为目标,才能使其正常工作


在我看来,如果您使用的是boost,词法强制转换是一个不错的选择

long long ll = boost::lexical_cast<long long>(mystr)
long ll=boost::词法转换(mystr)

另一个选项是使用字符串库中的stoll()。获取C++字符串。< /P>
long long ll = std::stoll(mystr);

买家注意:atoi不是类型安全的,也不提供任何边界检查!是的,_atoi64可能不是个好选择。如果您使用的是.NET framework,为什么不在字符串上使用ToInt64而不是char*。如果不是,我认为strtol或它的等价物是当前的标准方式,并且比atoi更安全。如果您认为这是一个好的解决方案(即,不担心类型安全/绑定检查),并且正在使用linux/osx,那么您可以使用atol()。似乎每周都会出现这样的问题:-你应该使用
std::int64_t
而不是MSVC
\uu int64
语言扩展。我不认为std::int64_t在VC++2008上可用
long long ll = std::stoll(mystr);