Newsgroup: it.comp.lang.c++
Titolo: Svuotare buffer tastiera

Salve!
Sto sviluppando un applicativo in Visual C++.
Ho la necessità di svuotare il buffer di tastiera all'apertura di un
pannello... onde evitare che un ENTER premuto precedentemente abbia
effetto sul pannello corrente.
Grazie, Samuel.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
it.comp.programmare.win32
-- 
Matteo Settenvini
FSF Associated Member
Email : 
mat...@member.fsf.org
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d--(-) s+:- a-- C++ UL+++
P?>++ L+++>$ E+>+++ W+++ N++ o?
w--- O- M++ PS++ PE- Y+>++
PGP+++ t+ 5 X- R tv-- b+++ DI+
D++ G++ e h+ r-- y?
------END GEEK CODE BLOCK------

 it.comp.programmare.win32
Grazie e scusate per l'OT.


 effetto sul pannello corrente.
Forse fa al caso tuo l'istruzione:
fflush(stdin);
che appunto pulisce il buffer della tastiera.
Manuel

Manuel <I...@vanilla.sky> writes:

Non e' vero.  Cfr. le FAQ di comp.lang.c @
http://www.eskimo.com/~scs/C-faq/top.html
, Q/A 12.26: 
,-----
| 12.26a: How can I flush pending input so that a user's typeahead isn't
|         read at the next prompt?  Will fflush(stdin) work?
| 
| A:      fflush() is defined only for output streams.  Since its
|         definition of "flush" is to complete the writing of buffered
|         characters (not to discard them), discarding unread input would
|         not be an analogous meaning for fflush on input streams.
|         See also question 12.26b.
| 
|         References: ISO Sec. 7.9.5.2; H&S Sec. 15.2.
| 
| 12.26b: If fflush() won't work, what can I use to flush input?
`-----
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

 che appunto pulisce il buffer della tastiera.
No, fflush() ha un comportamento definito solo se applicata agli streams di 
output (mentre la tastiera è chiaramente uno stream di input). In realtà 
potrebbe anche funzionare ma si tratterebbe di un'estensione che potresti non 
ritrovare cambiando compilatore.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic
 

Manuel wrote:
chiedo venia

 effetto sul pannello corrente.
while (getch())
   ;
Ciao

getch non e' una funzione standard.
Ciao,
Nicola

 getch non e' una funzione standard.
si lo so, ma sotto linux č presente in curses.h e in win su conio.h (se 
ricordo bene)

 conio.h (se ricordo bene)
Con una semantica molto diversa fra le due. Sotto Windows, c'è
anche un getch nel ncurses.h, con la semantica di quella del
mondo Unix.
Per incomminciare, AlterX a richiesto come svuoatre il buffer di
tastiera, senza puì di precisioni. Infatti, ci son puì d'un
buffer, mà perche parlava anche dell'apertura di un pannello,
penso che pensava al buffer di Windows. Che vuol dire che si
vuol una funzione di Windows (e mi sembra che conio.h non
funzionna nelle applicazioni Windows -- che serva solo per la
applicazioni console).
--
James Kanze                                           GABI Software
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34