hola gente, soy nuevo y la verdad me dieron un problema que por logica no es dificil de hacerlo pero tengo un problema con el compilador en el codigo, quiero ingresar registros en un bucle y la funcion gets me da problemas con la memoria y no puedo solucionarlo ni con un getch.. les dejo el codigo a ver si alguien me puede ayudar:
Código:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct persona{
char nombre[30];
int dni;
char sexo;
} ;
int main ()
{
// variables
char res='S';
persona datos;
FILE *archivo;
// abro archivo para agregar
archivo=fopen("c:\\personas.txt","a");
// agregar registro
while(res=='S'||res=='s')
{
// agrego datos
system("cls");
printf("Nombre:");
gets(datos.nombre);
printf("\nDNI:");
scanf("%d",&datos.dni);
printf("\nSexo:");
scanf("%c",&datos.sexo);
// agrego registro en archivo personas.txt
fprintf(archivo,"%s %d %c\n",datos.nombre,datos.dni,datos.sexo);
// el \n al final de la linea indica el fin del registro
printf("\n\nRegistro Agregado!");
// pregunto si quiero agregar mas
printf("\nDeseas agregar otro registro? S/N");
scanf("%c",&res);
}
// cerrar archivo
fclose(archivo);
// pausar
system("pause>nul");
return 0;
}
en el programa cuando lo ejecuto a veces me pasa de largo cuando quiero ingresar algunas de las 3 variables..
gracias por leer