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
La manera en la cual nosotros podemos hacer scanf()
con un carácter es poniéndole un espacio antes del %c