Programación General > C/C++

 Re: ayuda con un programa en c, char e int

(1/2) > >>

chenopodium:
Tengo el siguiente programa:

 #include <stdio.h>

struct {
  char nombre[15];
  char AR_h[2];
  char AR_min[2];
  char AR_sec[2];
  char DEC_deg[2];
  char DEC_min[2];
  char DEC_sec[2];
} registro;

int main()
{
     FILE *fichero_out;

     float AR;
     float DEC;

     fichero_out=fopen("UCM_coords_deg","a");

  if (fichero_out==NULL)
    {printf("Problemas al abrir el ficheron");
    exit(1);
    }

  do {
    printf ("Nombre UCM:"); fflush(stdout);
    gets (registro.nombre);
    if (strcmp(registro.nombre,""))
      {
   printf ("Horas de AR:"); fflush(stdout);
   gets (registro.AR_h);
   printf ("Minutos de AR:"); fflush(stdout);
   gets (registro.AR_min);
   printf ("Segundos de AR:"); fflush(stdout);
   gets (registro.AR_sec);
   printf ("Grados de DEC:"); fflush(stdout);
   gets (registro.DEC_deg);
   printf ("Minutos de DEC:"); fflush(stdout);
   gets (registro.DEC_min);
   printf ("Segundos de DEC:"); fflush(stdout);
   gets (registro.DEC_sec);
   
/* en las dos siguientes lineas es donde esta el error */

AR=15*(®istro.AR_h+®istro.AR_min/60+®istro.AR_sec/3600);
   DEC=®istro.DEC_deg+®istro.DEC_min/60+®istro.DEC_sec/360;
   fprintf(fichero_out,"%n %f %fn",®istro.nombre, AR, DEC);
      }
  } while (strcmp(registro.nombre,"")!=0);

  fclose(fichero_out);

  if (fclose(fichero_out)!=0)
    printf("Problemas al cerrar el fichero");
}

/* como he definido los valores como chart, supongo que tengo que pasarlos a int para poder operar con ellos, pero no estoy segura de saber hacerlo*/

Alguien me ayuda??

Muchas gracias

mabrev:
Hola:

Para cambiar de tipo, lo único que tienes que hacer es poner entre paréntesis el tipo al que quieres cambiar antes del nombre de la variable cuyo tipo quieres cambiar. Por ejemplo:

char variable;
int otraVariable;

otraVariable = (int)variable;

Espero que te sea de ayuda.

Saludos.

chenopodium:
pues me ha ayudado, pero a descubrir que el probla no estaba donde yo pensaba.

Ahora creo que estoy usando mal los punteros, porque en la linea donde me dice al compilar que invalid operands to binary, estoy tratando de operar con valores de punteros.

¿Que estoy haciendo mal?:think:

Super_G:
Primero porque utilisas "&" en los campos de "registro" en donde da ERROR, despues si tienes un numero en una cadena debes convertirla un mumero entero antes de procesarla, por lo que vi estas multiplicando y dividiendo cadenas, antes de eso debes convertirlas a enteros

chenopodium:
y como convierto una cadena a enteros?

y luego otra pregunta, porque como quiero hacer una division,  el resultado no puede ser un entero

Si me ayudais, gracias, si no, deistire

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa