[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gets() en Lenguaje C.




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: carles.pina@salleURL.edu / is08139@salleURL.edu / cpina@cat-linux.com
http://www.salleURL.edu/~is08139/

   No me toques el RESET que me reboto.



Reply to: