0

estoy haciendo un programa para repasar progra. Resalto que estoy usando VS Code. Cuando ejecuto el programa me pide la cadena, luego se salta ese scanf. Uso fflush pero tampoco funciona. Gracias de antemano.

   int main(){
    char cadena[21];
    char car, car2;
    int i;

    printf("introduce una cadena de como maximo 20 caracteres, luego un caracter suelto\n");
    scanf("%s", cadena);
    fflush(stdin);
    printf("Holamwnek\n");
    scanf("%c", &car);
    
    
    return 0;
}
1
  • Gracia si, pero hay otro parecido que voy a dejar de respuesta donde tambien me pasa.
    – Fernando
    Commented el 12 jun. a las 16:48

1 respuesta 1

0

No hay ningún problema de buffer, lo que sucede es que cada vez que ingresas información en el terminal queda un salto de línea. Además con scanf, ni [set], ni c, ni n consumen el espacio en blanco previo al dato a leer.

fflush(stdin) no sirve para el propósito de consumir caracteres, o al menos no en todos los compiladores. La forma más simple de hacerlo es agregando un espacio en el formato, antes de leer el caracter:

scanf(" %c", &car);

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.