Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - uscita da un ciclo con getch
Forum - C/C++ - uscita da un ciclo con getch

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
H1tz0r (Normal User)
Newbie


Messaggi: 9
Iscritto: 30/04/2010

Segnala al moderatore
Postato alle 20:01
Venerdì, 30/04/2010
ciao,
devo fare un ciclo do-while che fa una determinata azione fino a quando non viene premuto un tasto.
ho provato con
do
{
...
}
while (getch!=tastodapremere);
ma come immaginavo non funziona.
PS: preciso che il ciclo non può aspettare il tasto ogni volta per continuare.

grazie in anticipo

PM Quote
Avatar
napco (Normal User)
Pro


Messaggi: 64
Iscritto: 16/04/2010

Segnala al moderatore
Postato alle 20:29
Venerdì, 30/04/2010
getc è una funzione, quindi dovresti metterci le parentesi!

Ultima modifica effettuata da napco il 30/04/2010 alle 20:31
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:32
Venerdì, 30/04/2010
Non è standard ma puoi scrivere

Codice sorgente - presumibilmente C/C++

  1. #include <conio.h>



e poi

Codice sorgente - presumibilmente Plain Text

  1. while(!kbhit())
  2.    {
  3.      ...
  4.    }




Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
H1tz0r (Normal User)
Newbie


Messaggi: 9
Iscritto: 30/04/2010

Segnala al moderatore
Postato alle 20:47
Venerdì, 30/04/2010
sisi le parentesi le avevo messe.
per !kbhit() posso limitarla ? tipo far smettere il while solo quando viene premuto un tasto
es !kbhit()!='r'
PS: scusate se chiedo senza provare ma non ho un pc con un compilatore qui :<

Ultima modifica effettuata da H1tz0r il 30/04/2010 alle 20:49
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 21:51
Venerdì, 30/04/2010
Testo quotato

Postato originariamente da H1tz0r:

sisi le parentesi le avevo messe.
per !kbhit() posso limitarla ? tipo far smettere il while solo quando viene premuto un tasto
es !kbhit()!='r'
PS: scusate se chiedo senza provare ma non ho un pc con un compilatore qui :<



La funzione kbhit( ) ritorna un valore boleano, ed esattamente, true se è stato premuto un tasto, false altrimenti.

Il mio consiglio è quello di crearti una funzione apposita.

PM Quote
Avatar
H1tz0r (Normal User)
Newbie


Messaggi: 9
Iscritto: 30/04/2010

Segnala al moderatore
Postato alle 22:13
Venerdì, 30/04/2010
il mio livello di conoscenza è basso per il c++ , per funzione dici una parte di codice che svolge la mansione simile a quella che svolge kbhit() soltanto adattata alle mie esigenze ?
EDIT#1: mh il kbhit non va bene perchè poi mi servirebbe il tasto che è stato premuto

Ultima modifica effettuata da H1tz0r il 30/04/2010 alle 22:34
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:34
Venerdì, 30/04/2010
Testo quotato

il mio livello di conoscenza è basso per il c++



Il concetto di funzione esiste praticamente in tutti i linguaggi di programmazione ...

Comunque, puoi scrivere

Codice sorgente - presumibilmente Plain Text

  1. while(1)
  2.    {
  3.       if(kbhit())
  4.          if(getch()=='A')
  5.             break;
  6.  
  7.       ...
  8.    }



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
H1tz0r (Normal User)
Newbie


Messaggi: 9
Iscritto: 30/04/2010

Segnala al moderatore
Postato alle 22:39
Venerdì, 30/04/2010
ho risolto così:
Codice sorgente - presumibilmente C/C++

  1. while (!getch())
  2. {
  3. ...
  4. }


adesso però mi servirebbe che getch() sia salvato in una variabile :d

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:32
Venerdì, 30/04/2010
Non credo tu abbia risolto, se vuoi che il ciclo non venga bloccato ...

Ti avevo già risposto, ma hai ignorato completamente il codice che ti ho proposto ...



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo