PDA

View Full Version : [C++] interrompere ciclo


Teo@Unix
20-03-2010, 01:37
scusate sarà l'ora ma.... in C++ senza usare getch() come interrompo un ciclo while, non mi vengono idee, con getch() non ho problemi ma ora non posso usarla. ... :rolleyes:

cdere
20-03-2010, 01:47
break?

bobbytre
20-03-2010, 01:52
forse vuole qualcosa tipo "premi un tasto per continuare..."

in questo caso :

system("PAUSE");

Teo@Unix
20-03-2010, 01:59
forse vuole qualcosa tipo "premi un tasto per continuare..."

in questo caso :

system("PAUSE");

no, no.... durante un ciclo while(1), l'utente preme un tasto e avviene il break. Altrimenti è infinito.

bobbytre
20-03-2010, 02:07
no, no.... durante un ciclo while(1), l'utente preme un tasto e avviene il break. Altrimenti è infinito.

scanf ?

Teo@Unix
20-03-2010, 02:09
ma scanf è bloccante.

bobbytre
20-03-2010, 02:20
ma scanf è bloccante.

mi sa che devi usare i threads , uno per il ciclo e uno per l'input da tastiera

cionci
20-03-2010, 08:41
scusate sarà l'ora ma.... in C++ senza usare getch() come interrompo un ciclo while, non mi vengono idee, con getch() non ho problemi ma ora non posso usarla. ... :rolleyes:
Con getch dovresti avere problemi perché non è standard (sempre che tu ti rivolga alla getch di conio.h e non a quella curses).

string tmp;
getline(cin, tmp);

oppure

cin.get();

cionci
20-03-2010, 08:48
no, no.... durante un ciclo while(1), l'utente preme un tasto e avviene il break. Altrimenti è infinito.
E' ben diversa la questione allora. getch non era assolutamente adatta a questa situazione.

Il suggerimento del thread è valido. In alternativa ti devi rivolgere alle API/syscall di sistema o alle libreria ncurses se sei in linux (cbreak).

cionci
20-03-2010, 09:10
Anzi, guarda questo che fa al caso tuo (sempre che tu sia su Linux): http://cc.byexamples.com/2007/04/08/non-blocking-user-input-in-loop-without-ncurses/

Teo@Unix
20-03-2010, 11:36
Anzi, guarda questo che fa al caso tuo (sempre che tu sia su Linux): http://cc.byexamples.com/2007/04/08/non-blocking-user-input-in-loop-without-ncurses/

si, ottimo!
L'idea di usare la select() è sicuramente una buona soluzione.
Grazie.