将字符串转换为long long

时间:2014-04-29 14:54:02

标签: c string visual-studio-2012 type-conversion long-long

我使用了

中给出的解决方案

Troubling converting string to long long in C

在C中将字符串转换为long long。我正在使用Microsoft Visual Studio 2012。

编译时我收到错误

  

LNK2019:函数_main中引用的无法创建的外部符号_ + atoll。

#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;
}

2 个答案:

答案 0 :(得分:2)

环礁功能在C99中被引入标准C语言。

不幸的是,Microsoft长期忽略了C99,并且没有在Visual Studio C编译器中实现任何功能,包括VS 2012。

这在VS 2013中发生了变化,这增加了相当多但不完整的C99支持。

最简单的选择可能是使用应该可用的_strtoi64,但请注意,这是Microsoft特定的功能,因此如果您尝试在其他地方编译代码,可能无法工作。

答案 1 :(得分:0)

atoll已被弃用,似乎不包含在最新的VS版本中。使用strtoll

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

如果那个不可用,那么看看_strtoi64是否(具有相同的原型)。