Ver la versión completa : Función itoa()
Hola amigos.
Utilizo para desarrollar en la GP32 el GP32IDE y este sabado por la tarde necesitaba mostar en pantalla una serie de valores numerico contenidos en un arrai de enteros. Asi que pense en convertirlos a string (o arrai de char) mediante la función itoa() (como toda la vida).
El caso es que el compilador me dice que itoa() no esta definida (que yo sepa esta definida en stdlib.h, y esta cabecera esta incluida en el proyecto). Sabeis que ocurre?. ¿Es un problema de mi entorno de desarrollo o se debe a otro factor?.
Un saludo.
DCLive
D_Skywalk
23/05/2005, 09:51
Usa la funcion:
gm_sprintf(cad, "numero: %i", num);
(suponiendo que el gp32ide ese, use el sdk oficial... xD)
Un Saludo y feliz debug :)
Usa la funcion:
gm_sprintf(cad, "numero: %i", num);
(suponiendo que el gp32ide ese, use el sdk oficial... xD)
Un Saludo y feliz debug :)
Y si no lo usa siempre (creo) te quedara
sprintf(cad, "numero: %i", num);
Aiken :brindis:
Gracias a los dos. La verdad es que no habia pensado en la posibilidad de usar sprintf().
El ide que uso, si que utiliza el SDK oficial. Esta tarde probare a ver si resulta el uso de sptrintf. De todas formas me intriga el porque no puedo usar atoi, una función estandard
Un saludo
DCLive
D_Skywalk
23/05/2005, 16:10
Gracias a los dos. La verdad es que no habia pensado en la posibilidad de usar sprintf().
El ide que uso, si que utiliza el SDK oficial. Esta tarde probare a ver si resulta el uso de sptrintf. De todas formas me intriga el porque no puedo usar atoi, una función estandard
Un saludo
DCLive
Por que la mayoria de funciones de C que usan memoria estan chapadas, para evitar cuelgues, supongo... asi que debes usar las homonimas para GP32 como: gm_sprintf();
Un Saludo y un placer ;)
Por que la mayoria de funciones de C que usan memoria estan chapadas, para evitar cuelgues, supongo... asi que debes usar las homonimas para GP32 como: gm_sprintf();
Un Saludo y un placer ;)
en el entorno que tengo yo con el sdk oficial, viene unos wrappers para poder usar las originales vease sprintf en lugar gm_sprintf ;) me refiero al minigp32-2, no se si en el mirko vienen o no, o en otros ;)
de hecho yo siempre hago malloc(), sprintf() etc y nunca directamente las de gp32 :)
Aiken
Pues el caso es que yo si uso funciones de manejo de memoria, como malloc(). De echo el subconjunto de funciones que se encarga de manejar los objetos que se dibujan en pantalla (no lo quiero llamar motor grafico, porque aunque resumiria su cometido, seria demasiado pretencioso llamarlo asi), utiliza listas enlazadas con funciones estandar de C.
A ver si esta tarde puedo recabar un poco de información sobre el entorno de desarrollo que utilizo. Como lo instale cuando empece a trastear con la GP32 , hara cerca de una año, y he estado tiempo sin trabajar con ella por falta de tiempo, no se deciros ahora concretamente lo que utilizo. Lo que si es seguro es que uso el SDK oficial.
Seguramente desde que empece a trabajar con GP32 hasta ahora hayan surguido entornos mas amigables. Ya me ire poniendo al dia, porque ahora que voy organizando mi tiempo quisiera trabajar mas en serio con la GP32.
Un saludo y gracias por vuestros comentarios.
DCLive
Quizas te estes confundiendo con la funcion atoi() que convierte una cadena de caracteres a un entero (se encuentra en stdlib.h), pero de todas formas, si necesitas mostrar un array de enteros no hace falta pasarlos a cadena de caracteres, basta con poner un bucle que recorra el array y los vaya mostrando:
int vector[5]={1,2,3,4,5};
int i;
for(i=0;i<5;i++)
{
printf("Numero: %d\n",v[i]);
//si quieres usar cout tb se puede con cout<<"Numero: "<<v[i] o algo asi
}
Quizas te estes confundiendo con la funcion atoi() que convierte una cadena de caracteres a un entero (se encuentra en stdlib.h), pero de todas formas, si necesitas mostrar un array de enteros no hace falta pasarlos a cadena de caracteres, basta con poner un bucle que recorra el array y los vaya mostrando:
El problema es que printf() no está implementada para la GP32 por lo que tenemos que recurrir a gm_sprintf() como bien dice D_Skywalk.
La otra solución que das tampoco es válida y además por otra razón y es que el SDK oficial da problemas en C++ con GCC.
Gracias de todas formas por interesarte en este foro. :brindis:
y hay algun manual/tutorial donde vengan las funciones que esten especificadas para la gp32 y cuales son sus correspondientes funciones en C??? y que compilador hay que usar??
Damizean
23/06/2005, 21:55
El problema es que creo que los gm_etc son funciones optimizadas y además hechas a proposito para saber cuanta ram queda libre (esto segundo es una suposición).
De todas formas yo uso las funciones estas del sdk, menos para los gráficos. :]
Puck2099
27/07/2005, 00:25
Uhm, pues yo llevo usando el spritf a secas en mi Lady Killer con el SDK oficial y no he tenido ningún problema...
Saludos
Si yo tambien utilizo sprintf sin problemas utilizando el SDK oficial.
De todas formas hay algunas funciones que no puedo utilizarlas itoa es una de ellas. aunque bueno, con sprintf he conseguido el mismo objetivo.
Un saludo
DCLive
Uhm, pues yo llevo usando el spritf a secas en mi Lady Killer con el SDK oficial y no he tenido ningún problema...
Saludos
Por lo visto las funciones gm_* como gm_sprintf() tienen en cuenta el hardware de la gp32 mientras que las estándares no. Dicen que es mejor utilizar las del SDK. Yo seguiré haciendo así.
Oankali.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.