Hola,

On 15 Jan 2002, Juan Antonio Martinez wrote:

> El substituto correcto de gets(buffer) es:
>
> if (fgets(buffer,sizeof(buffer),stdin) ) {
>       if ( buffer[strlen(buffer)-1] == '\n' )
>               buffer[strlen(buffer)-1]='\0';
>       fflush(stdin);

        estás seguro del fflush(stdin) ?

> - la tercera linea vacia el buffer de entrada, dejandolo limpio para
> nuevos datos

quizás me equivoco, pero creo que el estándard ANSI C define qué tiene que
hacer fflush(xxx) cuando xxx es un flujo de salida, no de entrada

En sistemas como Solaris o HP-UX que son los que tengo más a mano el
fflush(stdin) elimina todo lo que haya quedado en stdin, en cambio en
Linux no lo suele hacer.

Donde me equivoco Profesor? :-)

Hasta pronto!

----
Carles Pina i Estany | Nick: Pinux / Pine / Teufeus
E-Mail: [EMAIL PROTECTED] / [EMAIL PROTECTED] / [EMAIL PROTECTED]
http://www.salleURL.edu/~is08139/

   No me toques el RESET que me reboto.

Responder a