schleife abbrechen, wenn taste gedrückt

c_anfänger

Grünschnabel
So, ich habe schon wieder eine Frage
Gibt es eine Funktion (für dev c++4, unter windows), der man z.B. als Parameter die Zeit übergibt, die sie warten soll und falls in dieser Zeit irgendeine Taste gedrückt wurde, soll die Funktion eine Zahl zurückgeben, sonst eine andere? Oder eine andere Funktion, mit der ich eine Schleife so oft durchlaufen lassen kann, bis eine Taste gedrückt wird?
Danke für eure Antworten im Voraus...
 
Hallo,
auf deine erste Frage weiß ich leider keine Antwort.
Die zweite Frage:
Code:
#include<conio.h>
#include<iostream>
using namespace std;

int main()
{
while(_getch()!='a')
{
//dein code
}
}
Damit werden so lange Zeichen von der Tastatur eingelesen, bis 'a' gedrückt wird. Dann wird die Schleife verlassen. Hoffe das hilft dir.
Gruß
bastionmancher
 
Danke für deine Antwort
Leider ist es nicht das, was ich wollte, so, wie ich verstanden habe, muss in deinem Code bei jedem Schleifendurchlauf eine Taste gedrückt werden und die Schleife wird so oft wiederholt, bis diese Taste 'a' ist.
Meine Vorstellung war, dass die Schleife durchläuft, auch ohne, dass man eine Taste drückt, falls man aber eine drückt, soll die Schleife beendet werden.
 
Die gleiche Frage hab ich auch schon mal hier gestellt.
Selber hab ich es aber bis heute noch nicht umgesetzt. Wenn du aber ein Programm dazu schreibst, kannst du es ruhig mal posten. Würde mich auch interessieren.
bastionmancher
 
Bei meiner Suche bin ich schon öfters auf die Funktion kbhit() gestoßen.
Hier ein Beispiel für diese Funktion:
Code:
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
  int count = 0;
  while(1)
  {
    count++;
    cout << count << endl;
    if(kbhit())
     return 0;
  }
  return 0;
}
Allerdings bekomme ich beim kompielieren dieses Codes folgende Fehlermeldung:
implicit declaration of Funktion 'int kbhit(...)'
 
So, die kbhit() Funktion hat auf dem alten kompiler nicht funktioniert, in der 5 Version von dev c++, ging es, also ist das Problem jetzt auch erledigt, danke allen für eure Hilfe...
 
Zurück