0

我使用了给出的解决方案

麻烦在C中将字符串转换为long long

在 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;
}
4

2 回答 2

2

atoll 函数在 C99 中被引入标准 C 语言。

不幸的是,微软很长一段时间都忽略了 C99,并且没有在 Visual Studio C 编译器中实现它的任何功能,直到并包括 VS 2012。

VS 2013 改变了这种情况,增加了相当多但不完整的 C99 支持。

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

于 2014-04-29T15:14:53.370 回答
0

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

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

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

于 2014-04-29T14:57:37.063 回答