Hola a tod@s, resulta que intento obtener un caracter de stdin con fgets, pero para que funcione correctamente, tengo que crear un char [] de como mínimo 3 de tamaño, dejo el código:
printf("Elige un modo de juego\n");
printf("0 -> Modo multijugador (contra un amigo)\n");
printf("1 -> Modo un jugador (contra CPU)\n");
char modo[3];
fgets(modo, 3, stdin);
printf("Modo: %c\n", modo[2]);
if (modo[0]=='0') printf("Has elegido modo multijugador\n");
if (modo[0]=='1') printf("Has elegido modo un jugador\n");
Si le doy menos de 3 no llega a coger el '\n' por lo que lo deja en el buffer stdin, ¿ Por que si en teoría son dos caracteres solo ? (el caracter que quiero obtener y el '\n').
Gracias y saludos.
Las cadenas de caracteres terminan en un caracter nulo '\0'. Con lo que son 3 caracteres: "A\n\0"
Cita de: ivancea96 en 26 Agosto 2015, 19:11 PM
Las cadenas de caracteres terminan en un caracter nulo '\0'. Con lo que son 3 caracteres: "A\n\0"
Gracias, duda aclarada.