2016-09-14 57 views
1

当我编译下面的代码时,编译器显示了对itoa()函数的未定义引用。但是,当我搜索;我发现itoa()是标准的。为什么这样?使用itoa()函数

#include <stdio.h> 
#include<stdlib.h> 
int main() 
{ 

    int i; 
    char buffer [33]; 
    printf ("Enter a number: "); 
    scanf ("%d",&i); 
    itoa (i,buffer,10); 
    printf ("decimal: %s\n",buffer); 
    return 0; 

} 
+4

不,没有标准C'itoa'函数。它是一些库实现的扩展。 –

+0

为什么对某些编译器有限制? –

+1

这不是“限制”,它实际上不是C标准或任何其他公布的标准的一部分。将字符串转换为整数的标准方法是[strtol函数](http://en.cppreference.com/w/c/string/byte/strtol)。 –

回答

0

请检查下面的链接。

http://www.cplusplus.com/reference/cstdlib/itoa/

itoa不是标准的功能,但一些编译器支持它。

在上面的链接提供了几个替代它。

+0

我不认为C++链接对于基于C的问题是有用的(即使对于这个特定的问题无关紧要,有人可能会试图将该链接用作永久性信息源。迟早,可能会结束坏了) – tofro

+0

@tofro如果你仔细检查页面的左边栏,它的'C库'参考 –