Programación General > C/C++

 socorro principiante!!! dificultad con funcion

(1/1)

makum:
estoy con un proyecto en el que me juego el año y se me da realmente mal...
tengo que crear ficheros con datos, crear una ruta, que la crea pero a la hora de comparar si el codigo de la ruta existe o no...no funciona. En fin, lo dejo aqui:
gracias de antemano a cualquier ayuda :)

la estructura es la siguiente:

struct rutas
 {
   int codruta;
   char cadorigen[20];
   char caddestino[20];
   float distancia;
};
  typedef struct rutas trut;

y la funcion: no se como ponerlo y ya estoy quemadisima...


void datos_ruta ()  
{
    int cod;
    int condicion=0;
    trut rutas;
    FILE *pfich;
   
  printf ("Introduzca el codigo de la ruta:");
  scanf ("%d",&cod);
  pfich=fopen("c:\rutas.dat","ab+");
      if (pfich == NULL)
      {
        printf ("Se ha producido un error. Imposible abrir el fichero.");
        exit(1);
      }
      else
      {
          fread(&rutas,sizeof(trut),1,pfich);
          while (condicion == 0)
          {
                     if (cod == rutas.codruta)
                       {
               
                       printf ("El código introducido ya existe.");                                      
           
                       printf ("Por favor, introduzca un código diferente:");
                       scanf ("%d",&cod);
                       fseek(pfich,0,0);
                       condicion=0;
           
                      }
                    else
                     {
               
                      printf ("INTRODUZCA:nn");
                      printf ("*Origen del viaje:");
                      scanf ("%s",&rutas.cadorigen);
                      printf ("*Destino del viaje:");
                      scanf ("%s",&rutas.caddestino);
                      printf ("*Distancia a recorrer:");
                      scanf ("%f",&rutas.distancia);
                      condicion=1;  
                      }
             
                  system ("cls");
                 printf ("*La ruta ha sido creada correctamente*");
             
                 getch ();
             }  
           fwrite (&rutas, sizeof(trut),1,pfich);
         }
  fclose(pfich);
}

lilezek:
Principiante, ponle más empeño la próxima vez xD. Yo tengo 17 años y todo esto lo he aprendido teniendo paciencia, revisando muchos links y leyendo muchos documentos. Y después del consejo, la pregunta:

No entiendo que intentas hacer. Pero creo que esto es lo que necesitas:


--- Código: C++ ---#include <Windows.h>#include <iostream>#include <conio.h> typedef struct rutas  {   int codruta;   char cadorigen[20];   char caddestino[20];   float distancia;} trut; void datos_ruta()   {    int cod=0;    trut rutas;    FILE *pfich;     printf ("Introduzca el codigo de la ruta:");    scanf ("%i",&cod);    pfich=fopen("c:\rutas.dat","r+");    if (pfich == NULL)    {        printf ("Se ha producido un error. Imposible abrir el fichero.");        exit(1);    }    else    {        fread(&rutas,sizeof(trut),1,pfich);        while (cod == rutas.codruta)        {            printf ("El código introducido ya existe.");                                                   printf ("Por favor, introduzca un código diferente:");            scanf ("%d",&cod);            fseek(pfich,0,0);        }        printf ("INTRODUZCA:nn");        printf ("*Origen del viaje:");        scanf ("%s",&rutas.cadorigen);        printf ("*Destino del viaje:");        scanf ("%s",&rutas.caddestino);        printf ("*Distancia a recorrer:");        scanf ("%f",&rutas.distancia);           system ("cls");        printf ("*La ruta ha sido creada correctamente*");        _getch();        rutas.codruta = cod;        fwrite (&rutas, sizeof(trut),1,pfich);    }    fclose(pfich);} int main (int argc, char ** argv){    datos_ruta();    return 0;} 
Si es esto, déjame un agradecimiento o algo xD. Saludos.

makum:
Yo es que esto...obviamente no es lo mio pero tengo que hacerlo este año.

librerias puse
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

las que tu has puesto no se para que sirven la verdad...no las he visto aun
gracias por responder  ^_^

lilezek:
Pues creo que windows.h tiene definido FILE y sus funciones, iostream todas las funciones de input-output streamed, excepto _getch() que viene definido en conio.h

De todos modos si lo que vas a intentar es a manejar datos, mírate la API de SqlLite, conseguirás algo mucho mejor para tu proyecto (hazlo sólo si tienes tiempo antes de acabar el curso)

makum:
pues lo hare, muchas gracias por la info!!!

Navegación

[0] Índice de Mensajes

Ir a la versión completa