Article View: es.comp.os.linux.programacion
Article #15816Re: Como ha quedado lo de leer de stdin?
From: Francisco J. Oviedo
Date: Thu, 01 Jun 2000 00:00
Date: Thu, 01 Jun 2000 00:00
40 lines
2032 bytes
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-mailReferences:
<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