2016-09-14 34 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庫'參考 –