error: `itoa` no fue declarado en este scope

Tengo un archivo c de ejemplo llamado itoa.cpp como se muestra a continuación:

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

Cuando compilo el código anterior con el siguiente comando:

 gcc itoa.cpp -o itoa

estoy recibiendo este error:

 [root @ inhyuvelite1 u02] # gcc itoa.cpp -o itoa
 itoa.cpp: En la función "int main ()":
 itoa.cpp: 10: error: "itoa" no se declaró en este ámbito

¿Qué está mal en este código? ¿Cómo deshacerse de esto?

itoa no es un estándar de ansi C y probablemente debería evitarlo. Aquí hay algunas implementaciones de rollo propio si realmente quieres usarlo de todos modos:

http://www.strudel.org.uk/itoa/

Si necesita un formato de cadena de memoria, una mejor opción es usar snprintf. Trabajando desde tu ejemplo:

 #include  #include  int main () { int i; char buffer [33]; printf ("Enter a number: "); scanf ("%d",&i); snprintf(buffer, sizeof(buffer), "%d", i); printf ("decimal: %s\n",buffer); return 0; } 

Si solo te interesa la base 10, 8 o 16. puedes usar sprintf

 sprintf(buf,"%d",i); 

Mira en stdlib.h. Tal vez _itoa en lugar itoa se definió allí.