Go Down

Topic: Rellenar con ceros a la izquierda con Sprintf [SOLUCIONADO] (Read 4612 times) previous topic - next topic

Heke

Aug 18, 2011, 09:46 pm Last Edit: Aug 19, 2011, 04:37 pm by Heke Reason: 1
Hola
No se ya la cantidad de pruebas que he hecho con sprintf para intentar darle formato pero no lo consigo.
Estoy empleando este codigo:
Code: [Select]
    int dia;
    char diatxt[3];
    dia = (now.day());
    sprintf(diatxt, "%d", dia);
    FechaHora[0] = diatxt[0];
    FechaHora[1] = diatxt[1];


Para que cuando el dia sea menor de dos cifras rellene con ceros a la izquierda, es decir si es el dia 2, quiero que salga 02.
La funcion me la puso Curro92 y me es muy util pero si son mas de dos cifras, es decir, el dia 22, sale 22

He probado asi:     sprintf(diatxt, "%d#0", dia); 
tambien asi:          sprintf(diatxt, "%d.1", dia); 

El caso es que no encuentro especifico las funciones del Sprintf, he encontrado en este link que habla de c+,c++ pero no se si es que no son compatibles pero llevo horas probando todo tipo de modificadores y no consigo darle el formato
http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/

¿Conoceis un enlace que explique en concreto para arduino o este es valido?

Y podrias indicarme como darle formato de rellenar con ceros a la izqui.

Gracias y un saludo.
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

curro92

Hola,
prueba a hacer esto
Code: [Select]

  int dia;
  char diatxt[3];

  dia = 3;
  sprintf(diatxt, "%.2d", dia);


Heke

Casi...

Al final lo he conseguido asi:
 
Code: [Select]
    sprintf(diatxt, "%0.2d", dia);

Aprovecho para agradecerte de nuevo Curro92, gracias al Sprintf pude saltar ese bache... yo no se la de horas, dias, que llevo peleando con esto.

Por cierto, si que hecho de menos algun sitio donde expliquen bien la funcion y parametros del Sprintf, pues veo que le voy a dar bastante uso.

Un saludo compañero
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

ionhs

Por lo que veo se parece al Printf de C, asi que tal vez te sirva mirar apuntes de C. Salu2

Heke

Si, es lo que hago Iohns

Pero hecho en falta algo mas claro, mira el mejor que encontre es el que puse en el post de arriba.

Si encuentro o alguien encuentra algo mejor explicado o exclusivo para arduino, lo pondre por aqui.

Un saludo
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

curro92

Hola Heke,
sprintf() funciona igual que fprintf(): este último escribe una salida formateada a un fichero, y el primero lo escribe a una cadena de caracteres.



Heke

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

ionhs

Te dejo estos apuntes de C, se comenta cosas sobre printf igual te sirve. Salu2

http://www.megaupload.com/?d=1F5JJLQ1

Heke

#8
Aug 20, 2011, 07:43 pm Last Edit: Aug 20, 2011, 07:48 pm by Heke Reason: 1
Gracias Ionhs

Me viene muy bien.

¿Porque no estudiaria yo, C en su epoca...?

Me cachis !!

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Go Up