Buenos dias comunidad forosweb, hoy vengo por aqui debido a que tengo un problema en una funcion de un programa de registros que estoy elaborando, busque bastante información sin embargo no he conseguido solución, el problema que tengo es el siguiente, en la funcion agregar registros de mi programa de registros, tengo declarada una variable que guardara el numero de registro, hasta aqui todo bien el problema reside si se coloca alguna letra o una cadena de caracteres el programa se bugea y se queda como en un ciclo infinito en vez de imprimir el mensaje de error, he buscando diversas formas de arreglar este error sin embargo no he conseguido solución dejo el codigo esperando sus buenos consejos saludos y gracias de antemano
Código C:
Ver originalint agregar(void)
{
FILE *arc;
int r,temp,i=0;
arc
=fopen("lista.dat","ab"); if(arc==NULL)
{
return 1;
}
else
{
puts("Numero del PC que desea agregar");
if( (temp<1) || (temp>100))
{
puts("Numero de registro no valido"); return 1;
}
{
arc
=fopen("lista.dat","rb"); if(arc==NULL)
{
return 1;
}
fread(&dat
,sizeof(datos
),1,arc
); {
if(dat.n==temp)
{
puts("No se pueden repetir los elementos del registro"); return 1;
}
fread(&dat
,sizeof(datos
),1,arc
); }
}
arc
=fopen("lista.dat","ab"); if(arc==NULL)
{
puts("Error al abrir fichero"); }
dat.n=temp;
puts("Serial del procesador"); puts("Serial del monitor"); puts("Serial del teclado"); puts("Serial del mouse"); puts("Serial del camara"); puts("Serial del regleta"); puts("Serial de las cornetas"); printf("Esta seguro de agregar esta PC al registro?"); if(r==1)
{
fwrite(&dat
,sizeof(datos
),1,arc
); }
}
return 1;
}