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:
agradezco de antemano 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:\n\n");
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);
}
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:
agradezco de antemano 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:\n\n");
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);
}