Invierte en tu educación con el precio especial

Antes:$249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12d

19h

31m

23s

1

scanf char en C

Muy probablemente has querido hacer un scanf() queriendo agarrar un solo carácter. Sin embargo, como veremos en el siguiente código, muchas veces esto no pasa y es que hay un pequeño truquito que tenemos que tener en cuenta.

Si nosotros tenemos el siguiente codigo:

#include<stdio.h>#include<string.h>intmain(void){
        int age;
        char gender;
        float IMC;

        printf("Age: ");
        scanf("%d", &age);
        printf("Gender (M/F): ");
        scanf("%c", &gender);

        printf("Your age is %d and your gender is %c \n", age, gender);

        return0;
}

El resultado será el siguiente:
Age: 19
Gender (M/F): Your age is 19 and your gender is

Como podemos ver, después de que ponemos la edad no nos deja poner el genero y la aplicación se brinca a la siguiente linea en donde pinta el output.
Sin embargo, algo importante es que nosotros solo debemos poner un espacio en blanco al momento de aplicar el scanf() como veremos a continuacion:

#include<stdio.h>#include<string.h>intmain(void){
        int age;
        char gender;
        float IMC;

        printf("Age: ");
        scanf("%d", &age);
        printf("Gender (M/F): ");
        scanf(" %c", &gender);

        printf("Your age is %d and your gender is %c \n", age, gender);

        return0;
}

De esa forma nosotros podemos obtener el siguiente resultado:
Age: 23
Gender (M/F): M
Your age is 23 and your gender is M

Conclusion

La manera en la cual nosotros podemos hacer scanf() con un carácter es poniéndole un espacio antes del %c

Escribe tu comentario
+ 2