Buenas, espero que me puedan ayudar.
Mi duda es muy basica, pero como no tengo mucha experiencia pues no logro resolverla.
Estoy haciendo un juego en C con gtk+, y necesito que el valor (tipo int) de un spin button se vea en un label que esta a la par y que cambie cada vez que se escoge un nuevo valor para el spin button.
El problema que tengo es que ocupo de alguna manera de tomar el valor int y pasarlo a char *
hice este codigo, pero me da error por usar tan directamente el sprintf
char * intAChar (char * str, int num)
{
return sprinf(str,"%d",num);
}
intento llamar ese codigo de esta manera
int spinValorInt;
spinValorInt = gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinTamano));
labelTamano = gtk_label_new(intAChar("",spinValorInt));
Espero que alguien me pueda ayudar, gracias!
Es sprintf, no sprinf, por eso te da error, sprinf no devuelve un char*, devuelve un int.
Lo que podrías hacer es esto:
#include <stdio.h>
#include <stdlib.h>
unsigned int digitos(signed int numero)
{
signed int temporal, digitos = 0;
while(numero)
{
temporal = numero % 10;
numero /= 10;
digitos++;
}
return digitos;
}
char *intAChar(signed int n)
{
char *string = malloc(sizeof(char) * digitos(n));
sprintf(string, "%d", n);
return string;
}
int main(void)
{
signed int n = 31416;
char *string = intAChar(n);
printf("%s\n", string);
free(string);
return 0;
}