Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2009, 17:17
Avatar de neandertal
neandertal
 
Fecha de Ingreso: enero-2008
Ubicación: Barcelona
Mensajes: 79
Antigüedad: 17 años
Puntos: 1
Pregunta gets no recoge caracteres

Tengo una función que pide introducir un titulo y el autor de un libro, para ello he creado la siguiente estructura:
Código:
struct libros{
    char titulo[20];
    char autor[20];
}libros[10];
int i;
Entonces en la función quiero añadir nuevas entradas a el array etructura.
Código:
void intro(){
    char a;
    int mas=1;
    printf("Deseas introducir algun libro ?(s/n): ");
    scanf("%c",&a);
    if(a=='s' || a=='S'){
        while(mas!=0){
            printf("\n");
            printf("Introduzca el titulo: ");
            gets(libros[i+1].titulo);
            printf("Introduzca el autor: ");
            gets(libros[i+1].autor);
            printf("Desea introducir mas libros ?(1-si,2-no) ");
            scanf("%d",&mas);
            }
        }
}
Uso i para definir la posicion en la qual voy a introducir los datos, ya que anteriormente he introducido datos procedentes de un fichero.

El problema es que hace como si el primer gets no estuviese, i en canvio el otro si que funciona, y la verdad es que no tengo ni idea de porque pasa esto...