Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2010, 14:11
mikelalos
 
Fecha de Ingreso: enero-2004
Mensajes: 11
Antigüedad: 20 años, 4 meses
Puntos: 0
Problema con ficheros

Buenas, tengo una especie de agenda hecha en c y me gustaria guardar los datos en un fichero que luego pueda leer. El codigo que tengo es este:

Código C:
Ver original
  1. [QUOTE]#include <stdio.h>
  2. #include <stdlib.h>
  3. #include "agenda.h"
  4. int main(){
  5.   FILE *f;
  6.   int opcion, i=0;
  7.   struct agenda ag;
  8.   inicializar_agenda(&ag);
  9.   do{
  10.   printf("\n1.-Añadir contacto");
  11.   printf("\n2.-Buscar contacto");
  12.   printf("\n3.-Mostrar todos los contactos");
  13.   printf("\n4.-Abrir agenda guardada");
  14.   printf("\n5.-Salir");
  15.   printf("\n¿que quiere hacer? ");
  16.   scanf("%d", &opcion);
  17.   switch(opcion){
  18.   case 1:
  19.     [B]f = fopen ("agenda.bin", "wb");
  20.     if (f == NULL) {
  21.      printf ("Error abriendo alumnos.dat\n") ;
  22.      return 1 ;
  23.      }
  24.     anyadir_contacto(&ag);
  25.     fwrite (&ag, sizeof(ag), 1, f);
  26.     fclose(f);[/B]
  27.   break;
  28.   case 2:
  29.     if (esta_vacia(ag))
  30.       printf("La agenda esta vacia");
  31.     else
  32.       mostrar_contacto(ag);
  33.   break;
  34.   case 3:
  35.     listar(ag);
  36.     break;
  37.   case 4:
  38.     [B]f = fopen ("agenda.bin", "rb");
  39.     while (fread(&ag, sizeof(ag), 1, f) > 0)
  40.       for(i=0;i<ag.numContactos;i++)
  41.       fprintf(f,"%s %d %s %s\n", ag.conjunto[i].nombre, ag.conjunto[i].telefono, ag.conjunto[i].email, ag.conjunto[i].web) ;[/B]
  42.   }
  43.   }while(opcion!=5);
  44.   return 0;  
  45. }
  46.     [/QUOTE]

El fichero se crea en el caso 1, pero luego no lo saca por pantalla en el caso 4 ¿Que puede estar mal?

Última edición por mikelalos; 10/12/2010 a las 14:34