elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿ Por que fgets me funciona así ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿ Por que fgets me funciona así ?  (Leído 1,802 veces)
snake_linux

Desconectado Desconectado

Mensajes: 70


Ver Perfil
¿ Por que fgets me funciona así ?
« en: 26 Agosto 2015, 12:16 pm »

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:

Código
  1. printf("Elige un modo de juego\n");
  2. printf("0 -> Modo multijugador (contra un amigo)\n");
  3. printf("1 -> Modo un jugador (contra CPU)\n");
  4. char modo[3];
  5.  
  6. fgets(modo, 3, stdin);
  7. printf("Modo: %c\n", modo[2]);
  8. if (modo[0]=='0') printf("Has elegido modo multijugador\n");
  9. if (modo[0]=='1') printf("Has elegido modo un jugador\n");
  10.  

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.


« Última modificación: 26 Agosto 2015, 19:31 pm por snake_linux » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: ¿ Por que fgets me funciona así ?
« Respuesta #1 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"


En línea

snake_linux

Desconectado Desconectado

Mensajes: 70


Ver Perfil
Re: ¿ Por que fgets me funciona así ?
« Respuesta #2 en: 26 Agosto 2015, 19:30 pm »

Las cadenas de caracteres terminan en un caracter nulo '\0'. Con lo que son 3 caracteres: "A\n\0"

Gracias, duda aclarada.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con fgets
Programación C/C++
P.AGCD 3 3,883 Último mensaje 14 Julio 2011, 20:41 pm
por kiriost
Duda con fgets
Programación C/C++
dalberto9410 4 3,081 Último mensaje 27 Marzo 2013, 07:27 am
por dalberto9410
No funciona un programa con "$name = trim(fgets(STDIN))"
PHP
Linton 5 3,405 Último mensaje 27 Noviembre 2013, 08:21 am
por dRak0
fgets sólo me lee 3 caracteres
Programación C/C++
FerJGS 2 1,389 Último mensaje 6 Septiembre 2015, 23:28 pm
por furciorifa
Duda sobre fgets() en c
Programación C/C++
lgamerm 8 5,422 Último mensaje 26 Octubre 2016, 06:34 am
por lgamerm
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines