Por favor
Cree el directorio telefonico,solo quiero que me ayudes en una cosa:
no se como buscar un nombre especifico dentro de los registos,me podrias dar la sentencia que se ocupa para hallarlo
Este es el codigo fuente:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
struct informacion
{
char nombre[64];
char direccion[256];
char telefono[10];
};
void pedir_informacion(struct informacion*);
void ver_informacion(struct informacion*);
main()
{
char nombre[64];
char op;
FILE*fichero;
fichero=fopen("informacion.dat","ab");
if(fichero==NULL)
{
printf("\nError al intentar abrir el fichero informacion.dat");
exit(0);
}
struct informacion persona;
printf("\n¿Desea introducir registros al directorio(S/N):");
op=(char)getch();
while(op!='n'&&op!='N')
{
pedir_informacion(&persona);
fwrite(&persona,sizeof(persona),1,fichero);
printf("\Desea introducir otro registro(S/N):");
op=(char)getch();
}
printf("\nDesea leer los registros del directorio(S/N):");
op=(char)getch();
fclose(fichero);
printf("\nIngrese el nombre a buscar:\n");
scanf("%d",&nombre);
fichero=fopen("informacion.dat","rb");
while(!feof(fichero))
{
fread(&persona,sizeof(struct informacion),1,fichero);
if(strcmp(nombre,persona.nombre)==0);
gets(persona.nombre);
ver_informacion(&persona);
break;
}
while(op!='n'&&op!='N')
{
if(fread(&persona,sizeof(persona),1,fichero)==0)
break;
ver_informacion(&persona);
printf("\nDesea consultar otro registro(S/N):");
op=(char)getch();
printf("\nIngrese el nombre a buscar:\n");
scanf("%s",&nombre);
}
printf("\nPresione una tecla para finalizar:");
fclose(fichero);
getch();
return 0;
}
void pedir_informacion(struct informacion*persona)
{
printf("\nNombre:");
scanf("%s",persona->nombre);
printf("\nDireccion:");
scanf("%s",persona->direccion);
printf("\nTelefono:");
scanf("%s",persona->telefono);
}
void ver_informacion(struct informacion*persona)
{
printf("\nNombre:%s",persona->nombre);
printf("\nDireccion:%s",persona->direccion);
printf("\nTelefono:%s",persona->telefono);
}
no se como buscar un nombre especifico dentro de los registos,me podrias dar la sentencia que se ocupa para hallarlo
Este es el codigo fuente:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
struct informacion
{
char nombre[64];
char direccion[256];
char telefono[10];
};
void pedir_informacion(struct informacion*);
void ver_informacion(struct informacion*);
main()
{
char nombre[64];
char op;
FILE*fichero;
fichero=fopen("informacion.dat","ab");
if(fichero==NULL)
{
printf("\nError al intentar abrir el fichero informacion.dat");
exit(0);
}
struct informacion persona;
printf("\n¿Desea introducir registros al directorio(S/N):");
op=(char)getch();
while(op!='n'&&op!='N')
{
pedir_informacion(&persona);
fwrite(&persona,sizeof(persona),1,fichero);
printf("\Desea introducir otro registro(S/N):");
op=(char)getch();
}
printf("\nDesea leer los registros del directorio(S/N):");
op=(char)getch();
fclose(fichero);
printf("\nIngrese el nombre a buscar:\n");
scanf("%d",&nombre);
fichero=fopen("informacion.dat","rb");
while(!feof(fichero))
{
fread(&persona,sizeof(struct informacion),1,fichero);
if(strcmp(nombre,persona.nombre)==0);
gets(persona.nombre);
ver_informacion(&persona);
break;
}
while(op!='n'&&op!='N')
{
if(fread(&persona,sizeof(persona),1,fichero)==0)
break;
ver_informacion(&persona);
printf("\nDesea consultar otro registro(S/N):");
op=(char)getch();
printf("\nIngrese el nombre a buscar:\n");
scanf("%s",&nombre);
}
printf("\nPresione una tecla para finalizar:");
fclose(fichero);
getch();
return 0;
}
void pedir_informacion(struct informacion*persona)
{
printf("\nNombre:");
scanf("%s",persona->nombre);
printf("\nDireccion:");
scanf("%s",persona->direccion);
printf("\nTelefono:");
scanf("%s",persona->telefono);
}
void ver_informacion(struct informacion*persona)
{
printf("\nNombre:%s",persona->nombre);
printf("\nDireccion:%s",persona->direccion);
printf("\nTelefono:%s",persona->telefono);
}
1 Respuesta
Respuesta de molk
1