Ver Mensaje Individual
  #12 (permalink)  
Antiguo 27/05/2009, 12:01
Avatar de neandertal
neandertal
 
Fecha de Ingreso: enero-2008
Ubicación: Barcelona
Mensajes: 79
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: scanf no recoge bien caracteres

Copio el código que tengo ahora.

Código:
int valoresd[parametros[0]];
    float valoresf[parametros[0]];
    char valoresc[parametros[0]];
    char valoress[parametros[0]][100];
    if(parametros[1]==1){
                         printf("Introduzca los valores ENTEROS\n");
                         for(i=0; i<parametros[0]; i++){
                                  printf("Valor %d: ",i+1);
                                  scanf("%d",&valoresd[i]);
                         }
    }
    if(parametros[1]==2){
                         printf("Introduzca los valores DECIMALES\n");
                         for(i=0; i<parametros[0]; i++){
                                  printf("Valor %d: ",i+1);
                                  scanf("%f",&valoresf[i]);
                         }
    }
    if(parametros[1]==3){
                         printf("Introduzca los CARACTERES\n"); 
                         char line[80];
                         memset(line, 0, sizeof(line));
                         fgets(line, sizeof(line), stdin); 
                         sscanf(line, "%c", &valoresc[i]);
    }
    if(parametros[1]==4){
                         printf("Introduzca las CADENAS DE CARACTERES\n");
                         for(i=0; i<parametros[0]; i++){
                                  printf("Valor %d: ",i+1);
                                  scanf("%s",&valoress[i]);
                         }
    }
Cuando decia que el programa finaliza quiero decir que el programa acaba sin ningún error, es decir, que no pide ningún valor al usuario.
La pregunta es:En fgets el programa espera a que el usuario introduzca valores hasta llenar la cadena o copia los últimos valores que hay en la stdin ??