sprintf siempre escribe el formato en una cadena, ¿es incorrecto en Linux de 64 bits?

Estoy usando la función de sprintf en Linux de 64 bits. Sucede algo extraño cuando probé la cadena escrita por sprintf o snprintf. La forma en que lo usé:

char s[256];
int current=0;
for (int i=0; i<5; i++)
{
    current += sprintf(s+current, "d", i);
}

printf("string is %s \n", s);

Todo lo que obtengo es: la cadena es ddddd, si cambio sprintf(s,"d", i) a "c" o "lf", todo lo que obtengo es ccccc o lflflflflf. ¿Alguien tiene alguna pista sobre esto? ¡Muchas gracias!

preguntado el 27 de julio de 12 a las 18:07

use %d para números enteros, d en sí no es especial -

2 Respuestas

Creo que quieres usar %d en lugar de d

Ver hombre 3 imprimir

Respondido 27 Jul 12, 18:07

deberías mirar hacia arriba man printf en línea de comando. Le dirá que su cadena de formato debe ser "%d"

Respondido 27 Jul 12, 18:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.