Pages: [1]   Go Down
Author Topic: Rellenar con ceros a la izquierda con Sprintf [SOLUCIONADO]  (Read 3578 times)
0 Members and 2 Guests are viewing this topic.
Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
    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.
« Last Edit: August 19, 2011, 09:37:44 am by Heke » Logged

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

Euskadi
Offline Offline
God Member
*****
Karma: 16
Posts: 711
Arduinotarrak
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,
prueba a hacer esto
Code:
  int dia;
  char diatxt[3];

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

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Casi...

Al final lo he conseguido asi:
 
Code:
    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
Logged

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

Donostia
Offline Offline
God Member
*****
Karma: 0
Posts: 740
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

Euskadi
Offline Offline
God Member
*****
Karma: 16
Posts: 711
Arduinotarrak
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.


Logged

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

miro entonces... a ver que tal
Gracias.
Logged

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

Donostia
Offline Offline
God Member
*****
Karma: 0
Posts: 740
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias Ionhs

Me viene muy bien.

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

Me cachis !!

« Last Edit: August 20, 2011, 12:48:28 pm by Heke » Logged

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

Pages: [1]   Go Up
Jump to: