2014-04-29 66 views
0

我曾經給出的解決方案轉換串長長

Troubling converting string to long long in C

將字符串轉換爲long long C.在我使用Microsoft Visual Studio 2012

在編譯我得到錯誤

LNK2019:unreslved外部符號_ +在函數_main中引用的環境。

#include <stdio.h> 
#include <stdlib.h> 


int main(void) { 
    char s[30] = { "115" }; 
    long long t = atoll(s); 

    printf("Value is: %lld\n", t); 

    return 0; 
} 

回答

0

atoll已被棄用,似乎並沒有被包含在最新發布VS。使用strtoll

long long t = strtoll(s, NULL, 10); 

如果這是不可用或者再看看_strtoi64是(有相同的原型)。

+0

我試過strtoll,但得到相同的錯誤。會給_strtoi64去。謝謝 –

+0

環礁應該在最新的VS 2013中可用。它不在早期版本中,因爲它是C99功能,MS直到最近才忽略C99。這同樣適用於strtoll。 –

2

環境功能在C99中引入標準C語言。

不幸的是微軟忽略C99很長一段時間,並沒有執行任何功能在Visual Studio C編譯器,直至幷包括2012年VS

這改變用VS 2013,其增加相當大的,但不完整的C99支持。

最簡單的選擇可能是使用應該可用的_strtoi64,但請注意,這是Microsoft特定的功能,因此如果您嘗試在其他地方編譯代碼,可能無法正常工作。