Buenas a todos tengo un problem me falta en un archivo eliminar y modificar
esto segun busqueda de rut
aqui adjunto lo q tengo
/*archivo*/
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<dos.h>
struct al
{
char rut_a[12];
char ap1_a [10];
char ap2_a[10];
char nom_a[10];
char cur_a[5];
char fep_a[8];
char fed_a[8];
char est_a[2];
char col_a[5];
};
main (void)
{
FILE *pa, *pb;
int i,comp=1;
char op1, auxrut[12];
struct al alu, aux;
clrscr();
do
{
printf("\n MENU");
printf("\n ------");
printf("\n 1...INGRESAR DATOS: ");
printf("\n 2...ELIMINAR DATOS: ");
printf("\n 3...SALIR: ");
printf("\n OPCION[ ]\b\b");
op1=getch();
switch(op1)
{
case '1':
clrscr();
if(!(pa=fopen("alumnos.cec","a")))
{
printf("\n no puedo crear el archivo ! \n");
getch();
}
else
while(comp!=0)
{
clrscr();
printf("(Para finalizar ingrese (***)\nRUT: ");
gets(alu.rut_a);
alu.rut_a[12]='\0';
comp=strcmp("***",alu.rut_a);
if(comp!=0)
{
printf("apellido paterno: ");
gets(alu.ap1_a);
alu.ap1_a[10]='\0';
printf("apellido materno: ");
gets(alu.ap2_a);
alu.ap2_a[10]='\0';
printf("nombre: ");
gets(alu.nom_a);
alu.nom_a[10]='\0';
printf("curso: ");
gets(alu.cur_a);
alu.cur_a[5]='\0';
printf("fecha pedido: ");
gets(alu.fep_a);
alu.fep_a[8]='\0';
printf("fecha devolucion: ");
gets(alu.fed_a);
alu.fed_a[8]='\0';
printf("estado: ");
gets(alu.est_a);
alu.est_a[2]='\0';
printf("codigo libro: ");
gets(alu.col_a);
alu.col_a[5]='\0';
printf("\n\n");
fwrite(&alu,sizeof(alu),1,pa);
}
}
fclose(pa);
clrscr();
printf("ahora se leen los datos...\n");
if(!(pa=fopen("alumnos.cec","r")))
{
printf("\n\n no se puede abrir el archivo\n");
getch();
}
else
do
{
if (fread( & alu,sizeof(alu),1,pa))
{
clrscr();
printf("\n rut :%s", alu.rut_a);
printf("\n apellido paterno :%s", alu.ap1_a);
printf("\n apellido materno :%s", alu.ap2_a);
printf("\n nombre :%s", alu.nom_a);
printf("\n curso :%s", alu.cur_a);
printf("\n fecha pedido :%s", alu.fep_a);
printf("\n fecha devolucion :%s", alu.fed_a);
printf("\n estado :%s", alu.est_a);
printf("\n codigo libro :%s", alu.col_a);
getch();
}
else
printf("\n\n No quedan m s registros\n\n");
}
while(!feof(pa));
fclose(pa);
break;
case '2':
clrscr();
if((pa=fopen("alumnos.cec","r"))==NULL)
printf("Error al encontrar el archivo");
if((pb=fopen("aux.cec","w"))==NULL)
printf("Error al crear el archivo");
do
{
if (fread( & alu,sizeof(alu),1,pa))
{
clrscr();
printf("Ingrese RUT a eliminar: ");
gets(auxrut);
if(strcmp(auxrut,alu.rut_a)==0)
{
printf("Registro Eliminado... ");
getch();
}
else
fwrite(&aux, sizeof(aux),1,pb);
}
}
while(!feof(pa));
fclose(pa);
fclose(pb);
if((pa=fopen("alumnos.cec","w"))==NULL)
printf("Error al crear el archivo");
if((pb=fopen("aux.cec","r"))==NULL)
printf("Error al abrir el archivo");
do
{
clrscr();
if (fread( & aux,sizeof(aux),1,pb))
fwrite(&alu, sizeof(alu),1,pa);
}
while(!feof(pb));
fclose(pa);
fclose(pb);
getch();
break;
}
}
while(op1!='3');
return(0);
}