|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 732
|
[c++] c.get() e pausa
Buongiorno. Mi sto avvicinando da un po' al c++ e mi è venuto un dubbio.
quando chiamo la funzione c.get() o semplicemente cin >> .... il programma va in pausa, finchè l'utente non inserisce qualcosa. Ora, supponiamo che ho questo ciclo while (true) { // codice qui ..... int input=c.get(); } Il ciclo esegue il codice finchè non arriva al c.get() dove si ferma aspettando l'input dell'utente. Per non far stoppare il ciclo e lasciare comunque la possibilità all'utente di inserire un input, devo per forza utilizzare i thread (di cui conosco 0)? In pratica io voglio fare un programma che esegue del codice e allo stesso tempo permettere all'utente di inserire dei comandi Grazie e scusate per la mia super niubiaggine. p.s. Ne approfitto per chiedervi: avete dei suggerimenti per iniziare a capire qualcosa sulla programmazione multithread in linux e in windows (c'è differenza, no?)? Ultima modifica di RaMaR : 10-09-2006 alle 10:37. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
se sei all'inizio non é cosí semplice e dipende molto dal sistema sul quale lavori ...
Io per esempio su Sun Solaris mi devo addirittura scrivere la funzione per ex kbhit() che ti permette un Codice:
while (!kbhit()) {...}
mentre su Windows la Borland te la fa trovare bella e pronta.
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 732
|
ah quindi kbhit() ritorna true quando si preme un tasto? Anche in in MSVC c'è questa funzione, l'ho provata e funziona. In Linux invece, usando gcc, si ha qualcosa del genere?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
esiste un modo per sapere quale tasto (o quali tasti) sono stati premuti?
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
Se ti serve (ma non so se funge su Linux) posso darti le funzioni che ho fatto ma le ho giá postate quí sul forum. http://www.hwupgrade.it/forum/showpo...99&postcount=4 per compilare devi fare: make -f makeKbUtil EDIT: devi settare le variabili LIB, OBJ e C_SRC che io ho messo a: LIB = $(HOME)/LIB OBJ = $(HOME)/OBJ C_SRC = $(HOME)/SRC/C se hai problemi setta tutto alla dir dove metti i files per ex HOME: LIB = $(HOME) OBJ = $(HOME) C_SRC = $(HOME)
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve Ultima modifica di trallallero : 11-09-2006 alle 10:31. |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
Codice:
int getkey( int block, int raw, struct extended *e_keys ) ti restituisce il tasto premuto. Per i tasti speciali (F1, page, esc .. etc) il discorso si complica ...
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:44.



















