2014-04-29 65 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特定的功能,因此如果您尝试在其他地方编译代码,可能无法正常工作。