🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #15816

Re: Como ha quedado lo de leer de stdin?

#15816
From: Francisco J. Oviedo
Date: Thu, 01 Jun 2000 00:00
40 lines
2032 bytes
Carles Sadurn� Anguita <isard@localhost.localdomain> wrote:

> El otro d�a, Santiago escribi� aqu� con un problemilla al leer de stdin; yo
> tengo el mismo desde un par de d�as antes y no he le�do la soluci�n
> (seguramente por alg�n problema en los servidores). Le� lo de fgets pero no
> me va.
> 
> Tengo una funci�n que es 
> 
> char RespuestaUsuario()
> {
>       char c[2];
>       fgets(c, 2, stdin); //El 2 es porque lee como m�ximo un car�cter menos...
>       return c[0];
> }

realmente me has dejado alucinado de como te has complicado la vida.
sustituye respuestausuario por getchar

> La primera vez que la invoco va bien,  pero la segunda vez se queda con el
> ENTER de la primera y me "salta".

es que es logico, el salto de linea tambien esta ahi, por mucho que te
disguste.

No he seguido la discusion de la que hablas, pero si alguien ha dicho
que usaras fgets, seguramente no era para que te construyeras con el un
getchar, sino para que cogieras una linea entera del terminal y luego la
analizaras a gusto.
De todas formas, si quieres coger caracter a caracter, solo tienes que
tener en cuenta que al final de cada linea siempre hay un salto de
linea.
Un posible ejemplo de como coger una respuesta a una pregunta:

[...]
printf("Jarlll!!, pierdes aceite?\n");
fgets(buff, MAXBUFF, stdin);
[...]

otra posibilidad es que pongas el teclado en modo no canonico.
Technical Details
Message-ID: <1ebizqu.w6tte818zqxk4N%foviedoa@teleline.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <slrn8jb068.21s.isard@localhost.localdomain>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,f3bc800a984cf1d6
X-Google-Attributes: gidf86c8,public
From: foviedoa@teleline.es (Francisco J. Oviedo)
Subject: Re: Como ha quedado lo de leer de stdin?
Date: 2000/06/01
Message-ID: <1ebizqu.w6tte818zqxk4N%foviedoa@teleline.es>
X-Deja-AN: 629880749
Content-Transfer-Encoding: 8bit
References: <slrn8jb068.21s.isard@localhost.localdomain>
Organization: Telefonica Transmision de Datos
Content-Type: text/plain; charset=ISO-8859-1
User-Agent: MacSOUP/2.4.6
Mime-Version: 1.0
Newsgroups: es.comp.os.linux.programacion