durch <esc> taste konsole schliesen
-
hi ich wuerde gern mal wissen wie man mit der <esc> taste die konsole schließen kann. bin noch ein ziemlicher c++ anfaenger
hier ist mal ein bsp von mirdo { cout<< //irgendwas cin>> //irgenwas switch(abfrage) { case 'm': //irgenwas break; case 'd': //irgendwas break; } } while(abfrage!=27);
mit m und d ruft man eine funktion auf und mit <esc> soll man abbrechen koennen weiss nur nicht wie???
mfg
-
Zu solchen Fragen schaust am Besten mal in die Konsolen FAQ hier im Forum, ich bin mir ziemlich sicher dass dort eine Antwort zu finden ist
-
Über cin kannst du keine Sonderzeichen wie ESC oder Cursortasten abfangen - da mußt du schon auf systemspezifische Funktionen zugreifen (Funktionsbeispiele findest du in der Konsolen-FAQ).
-
gut alles klar ich werd mal in der konsolen faq nachsehn
so ich hab was gefunden, startet auch aber nach der ersten abfrage rechnet er wie ein blöder und macht nicht weiter
char abfrage; bool exit=false; while(!exit) { if(kbhit()) { char c=getch(); } }
achso hab noch #include<conio.h> includiert
-
Ist ja auch eine Endlosschleifen, weil "exit" niemals true wird.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
gut ich hab es jetzt hin bekommen...
char abfrage; int i; do { cout<<"m --> multiplizieren"<<endl<<"d --> dividieren"<<endl<<"<ESC> --> beenden"<<endl<<endl; char x; while(true) { if(kbhit()) { x = getch(); i = (int)x; if ( i == 27) { exit(-1); } else { break; } }
hat auch noch nen netten neben effekt das man nach m und d nicht mehr mit enter bestaetigen muss
-
Wenn du ne Loop in deinem Programm hast benutz einfach die Winapi , den Befehl GetKeyState(Deine Taste) ..weis aber nicht genau ob ich den Befehl richtig geschrieben hab müsstest du eventuell nachschaun in der Winapi ..
MFG Toa
-
Hay, bin totaler anfänger in c/c++
dennoch möchte ich ein ähnliches programm schreiben, das mit escape terminiert
mein syntax is in ordnung, jedoch sagt er mir, dass exit (von beispiel oben)
nicht deklariert ist,
brauch ich noch ne andere bibliothek ausser stdio.h?
wenn ich das nämlich geschafft hab, is das progrämmchen fertig.2.Frage
kann mir jemand mal n anstoß geben, wie man mit beliebig vielen zahlen in C/C++ rechnet, zb. dass es egal ist wieviel zahlen ich eingebe , und diese dann multipliziert oder sonstwas werden?
ich muss bis jetzt immer festlegen wieviel zahlen es sein dürfen, das macht unheimlich viel mühe. Und dann muss man diese entsprechende Anzahl auch nutzen
bissl doof, ich denk das geht besser.
Ich wär auch zufrieden mit dem progrämmchen, wenns nicht ginge(was ich mir nicht vorstellen kann).das is das programm woum's geht, um's zu veranschaulichen, is dasselbe wie mit der esc terminierung(funzt imma noch nich)
#include <stdio.h>
main()
{
float n1,n2,n3,n4;
double erg;
int i,k;
char f;
i=2;
printf("Hallo und herzlich Willkommen\nzum Durchschnittsrechner fuer Schulnoten\nFuer 4 Schulnoten\n\n");
getchar();
while (i==2)
{printf ("Eingeben von 4 Schulnoten bitte \n");
scanf ("%f",&n1);scanf ("%f",&n2);
scanf ("%f",&n3);
scanf ("%f",&n4);
printf ("\n");
if (n1<=6&&n2<=6&&n3<=6&&n4<=6&&n1>=1&&n2>=1&&n3>=1&&n4>=1)
{
erg=(n1+n2+n3+n4)/(n1/n1+n2/n2+n3/n3+n4/n4);
printf ("%.2f \n\n",erg);}
if (n1>6||n2>6||n3>6||n4>6||n1<1||n2<1||n3<1||n4<1)
{
printf("Ungueltige Noteneingabe\n\n");}
f=getchar();
f=getchar();
k=(int)f;
if (k==27)
exit(-1);
else
break;
}return 0;
}
-
Hi,
Zu 1: Inkludiere noch die stdlib.h
Zu 2: Hier ein Beispiel wie das in C++ aussehen würde:#include <iostream> #include <list> typedef std::list<int> intList; int main() { while (true) { intList ints; while (true) { int zahl = 0; std::cout << "Zahl(0 = Abbrechen): "; std::cin >> zahl; if (zahl == 0) break; ints.push_back(zahl); } std::cout << "\n"; int sum = 0; for (intList::iterator it = ints.begin(); it != ints.end(); ++it) { sum += (*it); std::cout << sum << " + " << (*it) << " = " << sum << "\n"; } if (!ints.empty()) { std::cout << "\n=== Aufsummiert: " << sum << ", Durchschnitt: " << sum/ints.size() << " ===\n\n"; } else { std::cout << "=== Es wurde keine (gueltige) Eingabe gemacht ===\n\n"; } } return 0; }
Jedoch sieht dein Code eher nach C aus, und da müsstest du dich mit malloc usw... rumschlagen. Solltest du also die Wahl zwischen C und C++ haben würde ich dir eher zu C++ raten.
Viele Grüße,
Patrick
-
Also zu 1.
funzt nich, bzw beendet mir selbst nach einem enter, wär ja schon ein gewisser erfolg, jedoch muss ich das auch noch mit enter bestätigenfunktion ausgeführt,
schleifenende
entergedrückt:Press any key to continue
zu 2.
ich hab leide keine wahl zwischen c/c++
schulbedingt,
im nächsten jahr kommt c++nochmal zusammengefasst:
Problem Nr.1: Programm mit ESC terminieren(würd mir schon reichen wenn ers nur liest, die funktion könnte/hab ich selber)
alle tasten liest er mir, auch enter, aber BS und ESC usw. nichtProbem nr. 2
Ich möchte beliebig viele zahlen nacheinander eingeben, und mit einer bestimmten taste, sollen sie verwendet werden, bzw die funktion aktiviert werden.
zb.
man gebe ein
5
6
3
[Enter]
funktion: multiplizieren
[ergebnis]
90aber auch ebenso
zb 4 oder beliebig viele zahlen
2
4
1
3
5
[Enter]
funktion: multiplizieren
[ergebnis]
120usw.
ich danke dir
[Dummie]
dass du dir so viel mühe mit dem quelltext gemacht hast.
c++ brauch ich nächstes schuljahr
thx and see ya