Autor Tema: Problema con conversion de numero a cadena y visceversa  (Leído 1236 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado urielm80

  • PIC10
  • *
  • Mensajes: 30
Problema con conversion de numero a cadena y visceversa
« en: 20 de Febrero de 2014, 21:44:06 »
Hola buenas tardes, estoy haciendo una funcion para generar un numero a partir de la hora y se me ocurrio convertir la fecha(año,mes,dia,hora,minuto,segundo) a texto y concatenarlo para hacer uso de el, el problema esta en que por alguna razon no me muestra el valor convertido, abajo dejo el codigo que uso, cabe mencionar que los printf que tiene son para validar si convierte el valor, pero solo el que imprime la variable demo saca "aaa", los demas no pintan el valor de las variables, a alguien le ha pasado???

void prueba(){
Int n3;
char aux1[4]="";
char aux2[]="";
char aux3[]="";
char aux4[]="";
char aux5[]="";
char aux6[]="";
char *tiempo[]="";
char demo[]="aaa";
ds1307_get_date(day,month,yr,dow);
  ds1307_get_time(hrs,min,sec);


itoa(yr,aux1,10);
itoa(month,aux2,10);
itoa(day,aux3,10);
itoa(hrs,aux4,10);
itoa(min,aux5,10);
itoa(sec,aux6,10);

printf(lcd_putc,"\fprueba0");
printf(lcd_putc,"\n\%s",demo);//--------------------muestra aaa por lo que funciona bien
    delay_ms(2000);

printf(lcd_putc,"\fprueba1");
printf(lcd_putc,"\n\%s",aux1);//--------------------no muestra el valor de la variable
    delay_ms(2000);

strcat(tiempo,aux1);
strcat(tiempo,aux2);
strcat(tiempo,aux3);
strcat(tiempo,aux4);
strcat(tiempo,aux5);
strcat(tiempo,aux6);
n3=atoi(tiempo); // saco lo que tenia el aux
printf(lcd_putc,"\fprueba2");
    printf(lcd_putc,"\n\%s",tiempo);//--------------------no muestra el valor de la variable
    delay_ms(2000);
   printf(lcd_putc,"\fprueba3");
    printf(lcd_putc,"\n\%02d",n3);//--------------------muestra 00 por lo que parece no hacer la concatenacion
     delay_ms(2000);
}
« Última modificación: 20 de Febrero de 2014, 21:49:36 por urielm80 »

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Problema con conversion de numero a cadena y visceversa
« Respuesta #1 en: 21 de Febrero de 2014, 01:25:35 »
Lo primero: no estás reservando memoria para tus variables aux.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado urielm80

  • PIC10
  • *
  • Mensajes: 30
Re: Problema con conversion de numero a cadena y visceversa
« Respuesta #2 en: 21 de Febrero de 2014, 01:53:06 »
Lo primero: no estás reservando memoria para tus variables aux.

Hola, gracias por responder, mmm tengo entendido que con esto char aux1[4]=""; ya se reserva la memoria, se que no lo tengo en todos los aux, pero esto lo hice para probar si por ahí iba el problema, pero de ninguna manera que las tengo declaradas lo imprime en mi lcd

Desconectado urielm80

  • PIC10
  • *
  • Mensajes: 30
Re: Problema con conversion de numero a cadena y visceversa
« Respuesta #3 en: 21 de Febrero de 2014, 02:38:47 »
Buenas noches, antes que nada gracias por tu ayuda Geo, aunque el problema era otro, después de leer mucho y prueba y error encontré la solución, el problema estaba en el orden de los parámetros del método itoa, yo entendí que debía ser itoa(numero,cadena_destino,base) y resulta que lo correcto es itoa(numero,base,cadena_destino), espero que esto pueda ayudar a alguien mas.

Saludos


 

anything