C/Visual C - ¿que hago mal al usar sprintf() ??

 
Vista:

¿que hago mal al usar sprintf() ??

Publicado por serendipity (3 intervenciones) el 06/03/2006 07:36:49
Hola!
Intento pasar un tipo entero a un caracter ASCII, y lo hago así:

(...)
int n;
char a;

he probado...
sprintf( a, "%d" , n);
y me da el error "passing arg 1 of 'sprintf' makes pointer from integer without a cast
sprintf( a, "%d\n" , n);
lo mismo


¿es correcto usar sprintf para pasar de un int original a un caracter ascii??
¿qué hago mal en el codigo?

Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿que hago mal al usar sprintf() ??

Publicado por Arancha (4 intervenciones) el 06/03/2006 10:35:35
El problema es que 'a' es un carácter, y sprintf te da una cadena de caracteres.
Estás intentendo meter en un carácter toda una cadena y eso es erróneo.

Para pasar un tipo entero a un caracter ASCII te basta con hacer lo siguiente:

a = n;

si ahora haces printf("%c\n", a);

verás que en pantalla se imprime el carácter ASCII correspondiente al entero.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿que hago mal al usar sprintf() ??

Publicado por fernando.gomez (1603 intervenciones) el 07/03/2006 03:29:53
Chale, ¿de dónde sacaron eso?

int i = 0;

char c = i;

printf("%d\n", i);
printf("%c", c);

El primer printf imprime "0" mientras que el segundo no imprime nada; esto porque c = 0, es decir, el caracter cuyo código ascii es el caracter nulo.

sprintf se usa para formatear un búfer de caracteres a otro búfer.

char szBuffer[50] = "";

sprintf(szBuffer, "Escribe un número del %d al %d", 5, 10);
printf(szBuffer);

El código anterior imprime: "Escribe un número del 5 al 10". Por supuesto, puedes usar sprintf para hacer conversiones, pero lo __correcto__ es emplear las funciones de conversiones: atof, atoi, itoa, itof, atol, ltoa, etc.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar