Newsgroup: it.comp.lang.c++
Titolo: keypressed

Salve a tutti,
il mio piccolo problema col C++ consiste nel trovare il modo di far
attendere il programma ad un punto, finchè l'operatore non preme un
qualsiasi tasto della tastiera, o anche l'Enter, obbligatoriamente.
Qualcosa di analogo al "repeat until keypressed" del Pascal, se non ricordo
male.
Sa qualcuno come fare?
Grazie
Ilario

 attendere il programma ad un punto, finchč l'operatore non preme un


...

Prova a usare getch() che restituisce un byte.
getch() è un po' come readkey.
Se vuoi fare un
REPEAT
        ...
        ...
        istruzioni;
        ...
        ...
UNTIL KEYPRESSED;
allora devi fare:
while(!kbhit())
{        ...
         ...
         istruzioni;
         ...
         ...
};

 sembra che ci vuole conio.h e stdio.h.... controlla pero)... ciao ciao
C'e' chi dice keypressed, c'e' chi dice getch...  Nessuno pero' si
preoccupa di dire che nessuna di queste funzioni e' standard e quindi
implementata su tutte le piattaforme a disposizione.  Mai sentito
nominare Unix o VMS?  La soluzione portabile non esiste, e quella Unix
(assieme ad altre specifiche di altri ambienti) e' descritta nella FAQ
list di comp.lang.c, 
http://www.eskimo.com/~scs/C-faq/top.html
, Q/A
19.1 e seguenti:
19.1:   How can I read a single character from the keyboard without
        waiting for the RETURN key?  How can I stop characters from
        being echoed on the screen as they're typed?
19.2:   How can I find out if there are characters available for reading
        (and if so, how many)?  Alternatively, how can I do a read that
        will not block if there are no characters available?
....
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
The instructions said to use Windows 98 or better - so I installed FreeBSD.

nominare Unix o VMS?  La soluzione portabile non esiste, e quella Unix
Allora tantovale usare l'interrupt 16h... funzione AH=0, con  in uscita
AL=Carattere ASCII premuto e AH = Codice di scansione dello stesso.
Sarň OT ma almeno questo č portabile con ogni linguaggio...


(assieme ad altre specifiche di altri ambienti) e' descritta nella FAQ


Lo hai mai provato a fare sotto ambiente Windows 9x/2000...?;-) Sai gli
errori di protezione.... lo stesso se provi a leggere direttamente sul
buffer della tastiera (0000:0450... mi sembra)..... cmq la risposta che gli
ho dato io gli era suff..... l'ho capito subito quale era il suo problema...
è capitato anche a me quando ho fatto il passaggio Pascal--->C. Sotto Unix
per implementare funzioni con le stesse caratteristiche di gech() o kbhit()
utilizzo di solito l'header ncurses.h (mi sembra).
Ciao Ciao!

 Sarò OT ma almeno questo è portabile con ogni linguaggio...
Mi puoi dare un'implementazione per Digital Unix su Alpha e Solaris su
Spars, perche' possa provarla?  Grazie!  Ti faro' sapere poi i
risultati sul newsgroup.


 AL=Carattere ASCII premuto e AH = Codice di scansione dello stesso.
Mi puoi dare un'implementazione per Digital Unix su CPU Alpha, o per
Solaris su CPU Sparc, perche' possa provarla?  Grazie!  Ti faro'
sapere poi i risultati sul newsgroup.
-- 


sapere poi i risultati sul newsgroup.
Ehm... prego????
Saluti dal grande VEGETA PRINCIPE DEI SAIYAN
     /\   /\
\_/   \/   \_/