nu-fg Geschrieben 30. Juni 2003 Geschrieben 30. Juni 2003 Hi! Ich brauche eine Schleife in C oder C++, die eine vorgegebene Zeit (30 sec.) auf eine Benutzereingabe wartet (beliebige Taste). Ausgehend davon ob der Benutzer in diesen 30 sec. eine Taste drückt oder die Zeit verstreichen lässt werden unterschiedliche Funktionen aufgerufen. Hat jemand eine Idee??? Schönen Gruß und Danke! Zitieren
Stevie Geschrieben 30. Juni 2003 Geschrieben 30. Juni 2003 Try this: #include <conio.h> #include <stdio.h> #include <time.h> void main() { long Ticks = clock(); int Key = 0; while (clock() < (Ticks + 30000)) { if (kbhit()) { Key = getch(); break; } } if (Key) printf("Key %d pressed\n", Key); }[/php] Zitieren
Shadax Geschrieben 1. Juli 2003 Geschrieben 1. Juli 2003 Original geschrieben von Stevie while (clock() < (Ticks + 30000)) { [/php] clock_t clock(void); This function returns the number of clock ticks since an arbitrary time, actually, since the first call to clock, which itself returns zero. The number of tics per second is CLOCKS_PER_SEC. Zitieren
nic_power Geschrieben 2. Juli 2003 Geschrieben 2. Juli 2003 Hallo, in Standard-C funktioniert das nicht, da Benutzereingaben blockieren. Für welches Betriebssystem entwickelst Du denn? Unter Unix liesse sich das beispielsweise über einen Signal-Handler realisieren, der über ein Sigalarm aufgerufen wird. Nic Zitieren
nu-fg Geschrieben 3. Juli 2003 Autor Geschrieben 3. Juli 2003 Hi! Ich habe Windows NT oder XP mit dem Visual Studio zur Verfügung. Leider keine Chance das unter Unix zu machen ;-) Gruß, fg Zitieren
Stevie Geschrieben 4. Juli 2003 Geschrieben 4. Juli 2003 Ich hab's mit MSVS 6 auf WinNT ausprobiert und es klappt. Ich versteh nicht, was ihr für ein Problem habt!? Zitieren
nic_power Geschrieben 4. Juli 2003 Geschrieben 4. Juli 2003 Hallo, Original geschrieben von Stevie Ich hab's mit MSVS 6 auf WinNT ausprobiert und es klappt. Ich versteh nicht, was ihr für ein Problem habt!? Das Problem ist, dass die Fragestellung nur plattformabhängig gelöst werden kann, Der gepostete läuft damit nicht unter Linux/Unix usw. Ohne Angabe der Zielplattform (fehlt im ersten Artikel), läßt sich also keine brauchbare Lösung formulieren. Nic Zitieren
nu-fg Geschrieben 4. Juli 2003 Autor Geschrieben 4. Juli 2003 Hi! OK,Plattform hatte ich im ersten Beitrag versgessen :eek: Sollte es jetzt endgültig unter NT/VS implementieren und damit hat die Lösung von Stevie geklappt. Danke und schönen Gruß fg Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.