Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Programm beenden mit ESC

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.11.2004, 16:51 Uhr
~Gast
Gast


Wie kann ich ein Programm mit ESC beenden?

Habe eine while schleife geschrieben, die funktioniert aber nicht.


C++:
while (kbhit() != 27)
{
  ...
}



Denke mal an der 27 liegt das Problem. 27 ist aber doch die ESC Taste.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.11.2004, 17:07 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


kbhit gibt nicht die taste zurück die gedrückt wurde.
so sollte es gehen:

C++:
while(true)
{
   if (kbhit())
   {
        if (27 == getch())
            break;
   }
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.11.2004, 17:15 Uhr
~Gast
Gast



Zitat von Guybrush Threepwood:
kbhit gibt nicht die taste zurück die gedrückt wurde.
so sollte es gehen:

C++:
while(true)
{
   if (kbhit())
   {
        if (27 == getch())
            break;
   }
}




Danke, so funktioniert es.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.11.2004, 17:27 Uhr
typecast
aka loddab
(Operator)


kbhit ist kein ANSI sondern Windows spezifisch. ->
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.11.2004, 20:15 Uhr
~Gast
Gast


Wie kann ich denn eine weitere Taste abfragen?

Wenn ich es so schreibe:


C++:
if (kbhit() && (getch() == 27)
  {
    exit(1);
  }
if(kbhit() && (getch() == 50)
  {
   exit(1);
  }



ESC funktioniert so, wenn ich aber dann die 2 drücke passiert nichts.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.11.2004, 21:05 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Ist ja auch logisch weil du die Einagbe schon mit dem ersten getch aus dem Tastaturpuffer geholt hast.
So sollte es gehen:

C++:
if (kbhit())
{
   switch(getch())
   {
   case 27:
       {
           ...
       }
       break;
   case 50:
       {
            ....
        }
   }
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.11.2004, 21:28 Uhr
~Gast
Gast


Ok, so geht es. Danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: