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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Si aprieto <enter> sin ningún ingreso fgets no me devuelve un puntero null en C.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Si aprieto <enter> sin ningún ingreso fgets no me devuelve un puntero null en C.  (Leído 2,228 veces)
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Si aprieto <enter> sin ningún ingreso fgets no me devuelve un puntero null en C.
« en: 21 Enero 2017, 21:34 pm »

Hola, ¿cómo están?
Una consulta rapidita, alguien me puede decir que estoy haciendo mal, el puntero que devuelve fgets nunca es nulo, ¿por qué? .-

Código
  1. do{
  2. ok=1;
  3. printf("\n Ingresa el nombre del alumno [%d]......:", max+1);
  4. if( fgets( (b+max)->nombre, 30, stdin ) == NULL ){
  5. ok=0;
  6. printf( "\n El dato es obligatorio..." );
  7. printf( "\n Pulsa <Enter> para intentarlo nuevamente..." ); getchar();
  8. }
  9. }while(!ok);
  10. ajustes( (b+max)->nombre );

Saludos.


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Si aprieto <enter> sin ningún ingreso fgets no me devuelve un puntero null en C.
« Respuesta #1 en: 21 Enero 2017, 22:49 pm »

Cuando pulsas enter, se envía un salto de línea al stream.


En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: Si aprieto <enter> sin ningún ingreso fgets no me devuelve un puntero null en C.
« Respuesta #2 en: 21 Enero 2017, 22:55 pm »

Hola, Ivan gracias por ocuparte. -
No me podrías dar alguna idea para que esta validación funcione. -
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Si aprieto <enter> sin ningún ingreso fgets no me devuelve un puntero null en C.
« Respuesta #3 en: 21 Enero 2017, 23:01 pm »

Código
  1. if( fgets( (b+max)->nombre, 30, stdin ) == NULL || (b+max)->nombre[0] == '\n'){

Prueba así.
En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: Si aprieto <enter> sin ningún ingreso fgets no me devuelve un puntero null en C.
« Respuesta #4 en: 21 Enero 2017, 23:31 pm »

Si genio, funciona a la perfección. -
Gracias.
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines