#include <stdio.h>
struct datos
{
char nombre[21];
unsigned short int edad;
char ciudad[21];
}persona[3];
int main()
{
FILE *fichero;
int i=0;
int numero;
if ((fichero = fopen("gente.dat", "r+b")) == NULL)
printf("No se pudo abrir el archivo.\n");
else
{
do
{ //escribrir registros
puts("Nombre:");
gets(persona[i].nombre);
puts("Edad:");
scanf("%d", &persona[i].edad);
fflush(stdin);
puts("Ciudad:");
gets(persona[i].ciudad);
fwrite(&persona[i], sizeof(persona), 1, fichero);
i++;
}
while (i < 3);
fclose(fichero);
}
if((fichero = fopen("gente.dat", "r+b")) == NULL)
printf("No se pudo abrir el archivo.\n");
else
{
printf("Escriba el numero del registro a sustituir:\n (Para salir, escriba 0).\n");
scanf("%d", &numero);
do
{
//sobrescribir registro
printf("numero= %d", numero);
i = numero-1;
printf("\nEscriba datos del registro a reescribir:\n");
fflush(stdin);
puts("Nombre:");
gets(persona[i].nombre);
puts("Edad:");
scanf("%d", &persona[i].edad);
puts("Ciudad:");
fflush(stdin);
gets(persona[i].ciudad);
fseek(fichero, sizeof(persona)*(i), SEEK_SET);
fwrite(&persona[i], sizeof(persona), 1, fichero);
printf("\nNombre:%s\n Edad:%hd\n Ciudad:%s\n\n", persona[i].nombre, persona[i].edad, persona[i].ciudad);
//leer registro a eleccion por numero de registro
printf("Escriba el numero del registro a leer:\n (Para salir, escriba 0).\n");
scanf("%d", &numero);
printf("numero= %d", numero);
i = numero-1;
fseek(fichero, sizeof(persona)*(i), SEEK_SET);
fread(&persona[i], sizeof(persona), 1, fichero);
printf("\nNombre:%s\n Edad:%hd\n Ciudad:%s\n\n", persona[i].nombre, persona[i].edad, persona[i].ciudad);
printf("Escriba el numero del registro a sustituir:\n (Para salir, escriba 0).\n");
scanf("%d", &numero);
}
while ((numero > 0) && (numero <= 3));
fclose(fichero);
}
}
Fich: seek ciudades
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario