Si aprieto <enter> sin ningún ingreso fgets no me devuelve un puntero null en C.

Iniciado por NOB2014, 21 Enero 2017, 21:34 PM

0 Miembros y 2 Visitantes están viendo este tema.

NOB2014

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é? .-

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


Saludos.
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


NOB2014

Hola, Ivan gracias por ocuparte. -
No me podrías dar alguna idea para que esta validación funcione. -
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

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

Prueba así.

NOB2014

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.-