Il me semble que WaitForSingleObject ne fonctionne pas avec les flux console. Je pense qu'il faut plutot utiliser GetNumberOfConsoleInputEvents & PeekConsoleInput.
J'ai bien dit 100, pour 0.1 seconde, afin d'être assez réactif, car si ca met une seconde à afficher ce que tu tapes ca peut etre lent. Attendre 30 sec, c'est simplement attendre 300 fois 100 ms.
Code :
- int count = 0;
- while ( count < 300 ) // 30 sec
- {
- Sleep( 100 ); // 100 ms
- if ( _kbhit() ) { break; } // touche enfoncée
- ++count;
- }
- if ( count < 300 )
- {
- // touche enfoncee
- int c = _getch();
- cout << '*';
- }
- else
- {
- // timeout
- }
|
Un truc de ce genre. Note que je me suis trompé, c'est _kbhit qu'il faut utiliser pout tester une frappe au clavier. Note aussi que ce n'est pas portable.
Message édité par HelloWorld le 09-01-2005 à 22:25:31
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite