Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/05/2009, 10:12
Martin23_90
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años, 9 meses
Puntos: 0
ayuda con un problema

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