Añadir contacto (Ficheros)

Añade nuevos contactos en ficheros y luego consulta su datos.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
        char nombre[100];
        char ape1[100];
        char ape2[100];
        char direccion[100];
        char telefono[9];
        char movil[9];
        int sexo;
        }persona;

const int TAM_PERSONA = 422;

int main(int argc, char *argv[])
{
    int opt_menu = 0;
    int basura;
    int i;
   
    persona persona1;
    FILE* fichero;              //Descriptor actual del fichero
    char nombre_fichero[] = "datos.dat";
    char copia[1];
    char decision;
   
    while(opt_menu != 5)
                   {
                   printf ("\n 1. Asignar un fichero (%s)", nombre_fichero);
                   printf ("\n 2. Anadir un nuevo contacto");
                   printf ("\n 3. Listar todos los contactos");
                   printf ("\n 4. Copia de suguridad");
                   printf ("\n 5. Salir\n");
                  
                   scanf ("%d%c", &opt_menu, &basura);
                  
                   switch (opt_menu)
                          {
                                    case 1:
                                         system ("CLS");
                                        
                                         printf ("\n Introduzca el nuevo nombre del fichero: ");
                                         gets(nombre_fichero);
                                         break;
                                        
                                    case 2:
                                         system ("CLS");
                                        
                                         printf ("\n Nombre >> ");
                                         gets(persona1.nombre);
                                        
                                         printf ("\n Primer Apellido >> ");
                                         gets(persona1.ape1);
                                        
                                         printf ("\n Segundo Apellido >> ");
                                         gets(persona1.ape2);
                                        
                                         printf ("\n Direccion >> ");
                                         gets(persona1.direccion);
                                        
                                         printf ("\n Telefono >> ");
                                         gets(persona1.telefono);
                                        
                                         printf ("\n Telefono Movil >> ");
                                         gets(persona1.movil);
                                        
                                         printf ("\n Sexo (1 julio inglesias, 2 lo normal, 3 nivel informatico >> ");
                                         scanf("%d", &persona1.sexo);
                                        
                                         fichero = fopen(nombre_fichero, "wb");
                                         fseek(fichero,0,SEEK_END);
                                        
                                         fwrite(persona1.nombre, sizeof(char*), 100, fichero);
                                         fwrite(persona1.ape1, sizeof(char*), 100, fichero);
                                         fwrite(persona1.ape2, sizeof(char*), 100, fichero);
                                         fwrite(persona1.direccion, sizeof(char*), 100, fichero);
                                         fwrite(persona1.telefono, sizeof(char*), 9, fichero);
                                         fwrite(persona1.movil, sizeof(char*), 9, fichero);
                                         fwrite(&persona1.sexo, sizeof(int*), 1, fichero);
                                        
                                         fclose(fichero);
                                        
                                         system("CLS");
                                        
                                         printf ("\n El dato ha sido guardado\n");
                                         break;
                                        
                                    case 3:
                                         system ("CLS");
                                        
                                         printf ("\n Listado de contactos");
                                         printf ("\n --------------------\n\n");
                                        
                                         fichero = fopen(nombre_fichero, "rt");
                                         fseek(fichero,0,SEEK_END);
                                        
                                         fread(persona1.nombre, sizeof(char*), 100, fichero);
                                         fread(persona1.ape1, sizeof(char*), 100, fichero);
                                         fread(persona1.ape2, sizeof(char*), 100, fichero);
                                         fread(persona1.direccion, sizeof(char*), 100, fichero);
                                         fread(persona1.telefono, sizeof(char*), 9, fichero);
                                         fread(persona1.movil, sizeof(char*), 9, fichero);
                                         fread(&persona1.sexo, sizeof(int*), 1, fichero);
                                        
                                         for (i=255;i<2550;i*2){
                                             printf ("%s", nombre_fichero);
                                             }
                                        
                                         fclose(fichero);
                                        
                                         break;
                                        
                                    case 4:
                                         system ("CLS");
                                        
                                         strcpy (copia, nombre_fichero);
                                        
                                         fichero = fopen(copia, "rt");
                                         fclose(fichero);
                                        
                                         break;
                                        
                                    case 5:
                                         system ("CLS");
                                        
                                         printf ("\n Quieres salir? (S/N): ");
                                         scanf ("%c", &decision);
                                        
                                         if (decision == 'S')goto salida;
                                        
                                            else {
                                                 system ("CLS");
                                                
                                                 printf ("\n 1. Asignar un fichero (%s)", nombre_fichero);
                                                 printf ("\n 2. Anadir un nuevo contacto");
                                                 printf ("\n 3. Listar todos los contactos");
                                                 printf ("\n 4. Copia de suguridad");
                                                 printf ("\n 5. Salir\n");
                  
                                                 scanf ("%d%c", &opt_menu, &basura);
                                                 }
                                        
                                         break;        
                  
                   }
                   }salida:
 
  system("PAUSE");   
  return 0;
}

Escribir comentario

Comentarios: 0