2016-09-14 4 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

いいえ、標準的な '' 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ライブラリ'の参照 –