2008-11-19 168 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