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
Ir a la versión completa