¿Cómo nace, DNI? #include <stdio.h> #include <stdlib.h> //Estructrua de datos struct dagenda { char nombre[15]; char apellidos[25]; char tfno[14]; }; //F unciones necesarias void LeerDatos(struct dagenda *pagenda); void LimpiarEstructura(struct dagenda *pagenda); void MostrarDatos(struct dagenda *pagenda); /* Se desea crear un programa que almacene en un fichero de nombre &quot;agenda.dat&quot; los datos de una agenda telefónica. El fichero estará formado por registros  con la siguiente estructura anteriormente definida. */
int main(int argc, char *argv[]) { //Declaración de variables struct dagenda agenda; FILE *fich; char op='a'; nombre apellidos tfno “ agenda.dat”  (Nombre físico del fichero) nombre apellidos tfno Nombre apellidos tfno nombre apellidos tfno &agenda fich1 (Puntero al fichero) pagenda  (puntero a la estructura para utilizar en las funciones)
//Abrir fichero   fich=fopen(&quot;agenda.dat&quot;,&quot;a+&quot;); if (fich==NULL) { printf(&quot;\nEl fichero no se pudo abrir bien&quot;); exit(0); } //Leer datos por teclado y escribirlos en el fichero  do { printf(&quot;\n* *  * Introduce los datos para la agenda * * * &quot;); LimpiarEstructura(&agenda);   LeerDatos(&agenda); fwrite(&agenda,sizeof(struct dagenda),1,fich); fflush(stdin); printf(&quot;\nDeseas introducir mas datos (s/n): &quot;); scanf(&quot;%c&quot;,&op); fflush(stdin); } while (op=='s'||op=='S'); //cerrar fichero if(fclose(fich)!=0) printf(&quot;\nEl fichero no se pudo cerrar bien&quot;); fich1 &agenda nombre apellidos tfno nombre apellidos tfno pagenda   nombre apellidos tfno fwrite
//Abrir fichero   fich=fopen(&quot;agenda.dat&quot;,&quot;r&quot;); if (fich==NULL) { printf(&quot;\nEl fichero no se pudo abrir para leerlo&quot;); exit(0); } //Escribir el contenido del fichero en pantalla printf(&quot;\n* * * * El contenido del fichero es * * * *&quot;); while(!feof(fich)) { fread(&agenda,sizeof(struct dagenda), 1,fich); printf(&quot;\n- - - - - - - - - - - - \n&quot;); MostrarDatos(&agenda);  } //cerrar fichero if(fclose(fich)!=0) printf(&quot;\nEl fichero no se pudo cerrar bien&quot;); system(&quot;PAUSE&quot;); return 0; } fich1 &agenda nombre apellidos tfno nombre apellidos tfno pagenda   nombre apellidos tfno fread
void LeerDatos(struct dagenda *pagenda) { printf(&quot;\nNombre (15): &quot;); gets(pagenda->nombre); fflush(stdin); printf(&quot;\nApellidos (25): &quot;); scanf(&quot;%s&quot;,pagenda->apellidos); fflush(stdin); printf(&quot;\nTelefono: &quot;); scanf(&quot;%s&quot;,pagenda->tfno); fflush(stdin); }   &agenda nombre apellidos tfno pagenda   Lo que se teclea
void MostrarDatos(struct dagenda *pagenda) { printf(&quot;Nombre: &quot;); puts(pagenda->nombre); printf(&quot;Apellidos: &quot;); puts((pagenda->apellidos); printf(&quot;Telefono: &quot;); puts((pagenda->tfno);  } &agenda nombre apellidos tfno pagenda   Lo que se muestra
void LimpiarEstructura(struct dagenda *pagenda) { (*pagenda).nombre[0]='\0'; (*pagenda).apellidos[0]='\0'; (*pagenda).tfno[0]='\0'; }

Fichero de estructuras

  • 1.
    ¿Cómo nace, DNI?#include <stdio.h> #include <stdlib.h> //Estructrua de datos struct dagenda { char nombre[15]; char apellidos[25]; char tfno[14]; }; //F unciones necesarias void LeerDatos(struct dagenda *pagenda); void LimpiarEstructura(struct dagenda *pagenda); void MostrarDatos(struct dagenda *pagenda); /* Se desea crear un programa que almacene en un fichero de nombre &quot;agenda.dat&quot; los datos de una agenda telefónica. El fichero estará formado por registros con la siguiente estructura anteriormente definida. */
  • 2.
    int main(int argc,char *argv[]) { //Declaración de variables struct dagenda agenda; FILE *fich; char op='a'; nombre apellidos tfno “ agenda.dat” (Nombre físico del fichero) nombre apellidos tfno Nombre apellidos tfno nombre apellidos tfno &agenda fich1 (Puntero al fichero) pagenda (puntero a la estructura para utilizar en las funciones)
  • 3.
    //Abrir fichero fich=fopen(&quot;agenda.dat&quot;,&quot;a+&quot;); if (fich==NULL) { printf(&quot;\nEl fichero no se pudo abrir bien&quot;); exit(0); } //Leer datos por teclado y escribirlos en el fichero do { printf(&quot;\n* * * Introduce los datos para la agenda * * * &quot;); LimpiarEstructura(&agenda); LeerDatos(&agenda); fwrite(&agenda,sizeof(struct dagenda),1,fich); fflush(stdin); printf(&quot;\nDeseas introducir mas datos (s/n): &quot;); scanf(&quot;%c&quot;,&op); fflush(stdin); } while (op=='s'||op=='S'); //cerrar fichero if(fclose(fich)!=0) printf(&quot;\nEl fichero no se pudo cerrar bien&quot;); fich1 &agenda nombre apellidos tfno nombre apellidos tfno pagenda nombre apellidos tfno fwrite
  • 4.
    //Abrir fichero fich=fopen(&quot;agenda.dat&quot;,&quot;r&quot;); if (fich==NULL) { printf(&quot;\nEl fichero no se pudo abrir para leerlo&quot;); exit(0); } //Escribir el contenido del fichero en pantalla printf(&quot;\n* * * * El contenido del fichero es * * * *&quot;); while(!feof(fich)) { fread(&agenda,sizeof(struct dagenda), 1,fich); printf(&quot;\n- - - - - - - - - - - - \n&quot;); MostrarDatos(&agenda); } //cerrar fichero if(fclose(fich)!=0) printf(&quot;\nEl fichero no se pudo cerrar bien&quot;); system(&quot;PAUSE&quot;); return 0; } fich1 &agenda nombre apellidos tfno nombre apellidos tfno pagenda nombre apellidos tfno fread
  • 5.
    void LeerDatos(struct dagenda*pagenda) { printf(&quot;\nNombre (15): &quot;); gets(pagenda->nombre); fflush(stdin); printf(&quot;\nApellidos (25): &quot;); scanf(&quot;%s&quot;,pagenda->apellidos); fflush(stdin); printf(&quot;\nTelefono: &quot;); scanf(&quot;%s&quot;,pagenda->tfno); fflush(stdin); } &agenda nombre apellidos tfno pagenda Lo que se teclea
  • 6.
    void MostrarDatos(struct dagenda*pagenda) { printf(&quot;Nombre: &quot;); puts(pagenda->nombre); printf(&quot;Apellidos: &quot;); puts((pagenda->apellidos); printf(&quot;Telefono: &quot;); puts((pagenda->tfno); } &agenda nombre apellidos tfno pagenda Lo que se muestra
  • 7.
    void LimpiarEstructura(struct dagenda*pagenda) { (*pagenda).nombre[0]='\0'; (*pagenda).apellidos[0]='\0'; (*pagenda).tfno[0]='\0'; }