#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;
}