Page 339

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

97 98 99

5 Ficheros

void libera_agenda(TipoAgenda agenda) { struct NodoAgenda * aux , *siguiente;

100

aux = agenda; while (aux != NULL) { siguiente = aux ->sig; libera_entrada(aux ); aux = siguiente; }

101 102 103 104 105 106 107

}

108 109 110 111 112

void escribe_agenda(TipoAgenda agenda, char nombre_fichero[]) { struct NodoAgenda * aux ; FILE * fp;

113

fp = fopen(nombre_fichero, "w"); for (aux =agenda; aux !=NULL; aux =aux ->sig) fprintf (fp, "%s\n%s\n%s\n", aux ->datos.nombre, aux ->datos.direccion, aux ->datos.telefono); fclose(fp);

114 115 116 117 118 119 120

}

121 122 123 124 125 126 127 128

TipoAgenda lee_agenda(char nombre_fichero[]) { TipoAgenda agenda; struct Entrada * entrada_leida; FILE * fp; char nombre[MAXCADENA+1], direccion[MAXCADENA+1], telefono[MAXCADENA+1]; int longitud ;

129

agenda = crea_agenda();

130 131

fp = fopen(nombre_fichero, "r"); while (1) { fgets(nombre, MAXCADENA, fp); if (feof (fp)) break; // Si se acab´ o el fichero, acabar la lectura. quita_fin_de_linea(nombre);

132 133 134 135 136 137

fgets(direccion, MAXCADENA, fp); quita_fin_de_linea(direccion);

138 139 140

fgets(telefono, MAXCADENA, fp); quita_fin_de_linea(telefono);

141 142 143

agenda = anyadir_entrada(agenda, nombre, direccion, telefono); } fclose(fp);

144 145 146 147

return agenda;

148 149

}

150 151 152 153 154

/************************************************************************ * Programa principal ************************************************************************/

156 157 158 159 160

int main(void) { TipoAgenda miagenda; struct NodoAgenda * encontrada;

Introducci´ on a la Programaci´ on con C

333

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement