Oppure

Loading
20/10/08 11:00
Zani88
C'è qualcuno che ha idea di come si faccia a fare un ciclo che termina quando l'utente preme un determinato tasto? Mi servirebbe una soluzione più portabile possibile per Windows e Linux. Grazie!
aaa
20/10/08 12:26
gioser
Devi usare delle funzioni che non sono standard del linguaggio.

in un'applicazione windows console, puoi usare kbhit(), definita in conio.h

in linux, al momento non saprei, magari c'è qualcosa nelle librerie ncurses

Ciao :)
aaa
20/10/08 12:35
Zani88
Grazie!
Sicuramente non è tra le funzioni standard ma un metodo che funzioni su entrambi non c'è? Il mio problema è che devo eseguire un certo tot di istruzioni finché l'utente non preme un certo tasto. Se esiste un implementazione diversa bene lo stesso (che so ad esempio usando i segnali).
aaa
21/10/08 8:41
pierotofy
Devi usare i threads o le fork per fare quel che chiedi... di conseguenza un codice uguale sia per Windows che per Linux credo sia impossibile. Puoi però garantire la compatibilità di compilazione mettendo qualche istruzione condizionale di preprocessore.
Il mio blog: piero.dev
21/10/08 21:10
Zani88
Ok l'importante che almeno il procedimento fosse quello. Però più nello specifico come bisognerebbe fare? Non mi interessa il codice ma a livello concettuale ovviamente... :k:
aaa
22/10/08 8:24
pierotofy
Fai partire il thread secondario che esegue il codice tipo così:

while(threadRunning){
   //Codice qui
}


In quell'altro invece aspetti per l'input dell'utente:

while(!kbhit()) Sleep(1);
threadRunning = false;


Qualcosa del genere.
Il mio blog: piero.dev
23/10/08 12:49
Zani88
Grazie!
Se a qualcuno interessa su vimtron.blogspot.com/2008/01/… si trova come implementare la kbhit su Linux.
aaa