Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problema con ficheros y bucle while(!feof..

Estas en el tema de problema con ficheros y bucle while(!feof.. en el foro de C/C++ en Foros del Web. bueno aca tengo el incio de un proyecto, me he ido guiando de anteriores documentos que ya habia realizado los cuales poseen una y otra ...
  #1 (permalink)  
Antiguo 16/06/2012, 11:48
 
Fecha de Ingreso: junio-2012
Mensajes: 4
Antigüedad: 11 años, 10 meses
Puntos: 0
problema con ficheros y bucle while(!feof..

bueno aca tengo el incio de un proyecto, me he ido guiando de anteriores documentos que ya habia realizado los cuales poseen una y otra cosa parecida a este. muy bien el problema se encuentra segun creo en el bucle while. pero de verdad que no se asi que me encantaria que me dijeran en que estoy fallando. y de antemano muchisimas gracias.
aca les dejo el codigo:
struct{
char codigo;
char unidad_curricular[40];
char modulo[40];
char densidad[15];
char duracion[20];
int horas;
int trayecto;
int trimestre;
int uc;
}
datos;

FILE * ptr;
void insercion(void);
void insercion(){
char n_cod;
ptr=fopen("pnfi1","r+");
cout<<"\nIngrese codigo del producto a ingresar";
cin>>n_cod;
fread(&datos,l,1,ptr);
if(ptr==NULL){fclose(ptr);
ptr=fopen("pnfi1.txt","w");}
fread(&datos,l,1,ptr);
while(!feof(ptr)){
if(datos.codigo==n_cod)
{
printf("\n\n\n\rRegistro duplicado !!!");
fclose(ptr);
getch();
return;
}
fread(&datos,l,1,ptr);
while(getchar()!='\n');
}
n_cod=datos.codigo;
cout<<"\nIngrese unidad curricular";
gets(datos.unidad_curricular);
cout<<"\nIngrese modulo";
gets(datos.modulo);
cout<<"\nIngrese densidad";
gets(datos.densidad);
cout<<"\nIngrese duracion";
gets(datos.duracion);
cout<<"\nIngrese horas";
cin>>datos.horas;
cout<<"\nIngrese trayecto";
cin>>datos.trayecto;
cout<<"\nIngrese trimestre";
cin>>datos.trimestre;
cout<<"\nIngrese unidades de credito";
cin>>datos.uc;
fwrite(&datos, sizeof(datos),1,ptr);
fclose(ptr);
cout<<"\nProducto registrado exitosamente";
getch();
return;
}

NOTA: no me dan errores de sintaxis
  #2 (permalink)  
Antiguo 16/06/2012, 12:42
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: problema con ficheros y bucle while(!feof..

Código C:
Ver original
  1. ptr=fopen("pnfi1","r+");
  2. cout<<"\nIngrese codigo del producto a ingresar";
  3. cin>>n_cod;
  4. fread(&datos,l,1,ptr);
  5. if(ptr==NULL){fclose(ptr);
  6. ptr=fopen("pnfi1.txt","w");}
  7. fread(&datos,l,1,ptr);
  8. while(!feof(ptr)){
  9. if(datos.codigo==n_cod)
  10. {
  11. printf("\n\n\n\rRegistro duplicado !!!");
  12. fclose(ptr);
  13. return;
  14. }
  15. fread(&datos,l,1,ptr);
  16. while(getchar()!='\n');
  17. }
un par de preguntas sobre esto:
1º que es el segundo argumento del fread??? Deberia ir un sizeof
2º "pnfi1.txt" y "pnfi1" son dos archivos diferentes???

Saludos

PD: usa las etiquetes Highlight para postear codigo, y si podes comenta el codigo asi es mas facil de entender
  #3 (permalink)  
Antiguo 16/06/2012, 12:46
 
Fecha de Ingreso: junio-2012
Mensajes: 4
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: problema con ficheros y bucle while(!feof..

oh disculpa.. bueno es el mismo archivo, son pnfi1 pero como habia realizado varios intentos en copiarlo me equivoque. y con respecto a lo del sizeof eso esto. l=sizeof(estructura) solo lo asigne a una variable para agilizar

Etiquetas: bucle, ficheros, int, struct
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:41.