Re: gets() en Lenguaje C.
Hola,
> > > 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) ?
>
> No hay diferencia entre entrada y salida, porque eso es
> subjetivo. Juan Antonio decía que vacía el buffer, lo que puede sonar
entiendo
> diferente de lo que es, como si se descartara el buffer. Pero el
> fflush() sólo causa que se mande al destino ordinário lo que está
> aguardando. En el caso especial del stdin, no hay nada aguardando
> hasta que no hay nadie leyendo. Por eso el fflush() aqui simplemente
> no hace nada. El problema del programa (no ya sus errores) está en que
a eso me refiero, que si no hace nada no se pone y listos...
> el TTY interfiere en el buffering. Incluso si haces
>
> setvbuf (stdin, NULL, _IONBF , 0);
>
> no funcionará porque la terminal implementa el line buffer. Como
> respondí al princípio, la única solución práctica es usar una librería
> como (n)curses. El problema es, que el cómo hacerlo manualmente
> depende de la terminal, porque en un princípio podrías mandar las
> sequencias de escape a la terminal, pero ésta es diferente de
> emulación a emulación.
gracias por la otra información
----
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/
10 IF "LAS RANAS"="TIENEN PELO" THEN PRINT "Windows is good"
Reply to: