• Sábado 14 de Diciembre de 2024, 17:53

Autor Tema:  Re: ayuda con un programa en c, char e int  (Leído 1635 veces)

chenopodium

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: ayuda con un programa en c, char e int
« en: Miércoles 29 de Octubre de 2003, 14:31 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 126
    • Ver Perfil
Re: ayuda con un programa en c, char e int
« Respuesta #1 en: Miércoles 29 de Octubre de 2003, 19:10 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: ayuda con un programa en c, char e int
« Respuesta #2 en: Miércoles 29 de Octubre de 2003, 19:26 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: ayuda con un programa en c, char e int
« Respuesta #3 en: Jueves 30 de Octubre de 2003, 05:21 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: ayuda con un programa en c, char e int
« Respuesta #4 en: Jueves 30 de Octubre de 2003, 12:22 »
0
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

mabrev

  • Miembro MUY activo
  • ***
  • Mensajes: 126
    • Ver Perfil
Re: ayuda con un programa en c, char e int
« Respuesta #5 en: Jueves 30 de Octubre de 2003, 14:53 »
0
Hola, no hace falta que desistas, para pasar una cadena a entero puedes utilizar la función "atoi" de la libreria "string.h".

entero = atoi(cadena);

Para que el resultado de una división no te de entero, tienes que cambiar el tipo del resultado, poniendo el nuevo tipo delante y entre paréntesis:

Float resul;

resul = (float) numero1/numero2;

Espero que te sea útil.

Saludos

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
ayuda con un programa en c, char e int
« Respuesta #6 en: Jueves 30 de Octubre de 2003, 16:28 »
0
pensaba hacre una funcion, pero eso parece muchisimo mejor abra que provarlo