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