Hola tengo la siguiente función:
Código C++:
Ver originalvoid show(){
SetConsoleTextAttribute(h,20);
char nombre[50];
SetConsoleTextAttribute(h,15);
gets_s(nombre);
sprintf_s(nombre,"%s.dat",nombre);
FILE *archivo;
fopen_s(&archivo,nombre,"rb+");
struct usuarios users2;
fread(&users2
,sizeof(users2
),1,archivo
); SetConsoleTextAttribute(h,20);
SetConsoleTextAttribute(h,15);
SetConsoleTextAttribute(h,20);
printf("\n\tAno de nacimiento: "); SetConsoleTextAttribute(h,15);
printf("%d",users2.
nacimiento); SetConsoleTextAttribute(h,20);
SetConsoleTextAttribute(h,15);
SetConsoleTextAttribute(h,20);
SetConsoleTextAttribute(h,15);
SetConsoleTextAttribute(h,20);
SetConsoleTextAttribute(h,15);
printf("\n\n\tClick the boton \"a\" for see more and any other for back."); char caracter;
caracter=_getch();
if(caracter=='a' || caracter=='A'){
show();
}else{
menuPrincipal();
}
}
Cuando se ejecuta por primera hace todo bien(muestra los datos del archivo binario.) Pero si el usuario pulsa el boton "a" para repetir me muestra el siguiente error:
Código error:
Ver originalDebug Assertion Failed!
Program: ....
FIle: fread.c
Line: 102
Expression:(stream!=NULL)
...
Creo que es porque se llena la variable nombre[50] y luego no hay espacio. Solo creo, no estoy nada seguro.
Como solucionar lo?
Saludos