Wie kann ich das Programm mit ESC-Taste unterbrechen und beenden C++?

Liebe/-r Experte/-in,
Guten Tag
Ich bin C++ Anfänger…ich will das Programm mit ESC-taste unterbrechen…weiß leider nur nicht wie…es soll mit do while Befehl gehen…kann jemand mir netterweise schreiben wie es geht…hier das Programm



#include
#include
using namespace std;
int main ( )

{

int frage,x,y,ergeb;

anfang:
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
ergeb=x*y;

fragen:

cout >frage;

if (frage==ergeb)
{
cout

also das goto bitte mal weg, sonst tu ich mir schwer mit
helfen. Spagetti Code war gestern. Einfach durch eine
Schleife ersetzen.

das mit dem ESC ist nicht so schwierig, ist ja auch nur
eine Taste *gg* mit einem ACSII Code nämlich 27!

Hallo,

nach dem Einlesen des Ergebnisses (cin >> Frage) kannst Du den Inhalt von „Frage“ auf ESC testen und das Programm dort beenden.

Noch ein paar Tips:

* alle Goto durch vernünftige programm strukturen ersezten.
* cin ist zwar der einfachste Weg zum schnellen ergebnis. Bessere Kontrolle hast Du aber mit getc() aus der guten alten C bibliothek.

Viel Spaß beim weiter lernen.

Gruss

Gerhard

Hallo,

ohh weh, ich habe schon jahrelang nicht mehr auf der Console programmiert…

Um die Eingabe von einzelnen Tastaurereingaben abzufangen benutzt man normalerweise getchar().
z.B.
do
{

} while (getchar() != 27)

Allerdings solltest du die gesamte Struktur des Progs nochmal ueberdenken. Denn Sprungmarken und GoTo habe in einem C-Programm nichts verloren, das ist schlechter Stil.

Tschau
Peter

Warum unbedingt mit esc beenden?
Prüfe doch auf eine bestimmte Eingabe: z.B. ‚q‘ für quit.
Als Resultat müsstest Du die Variable ‚frage‘ gegen den Wert, z.B. ‚q‘, prüfen bei dem das Programm beendet werden soll.
Ansonsten ist der Einsatz von goto-Anweisungen nicht empfehlenswert, da besonders bei komplizierteren Bedingungen schnell der Überblick verloren geht. Versuche es mit zwei geschachtelten while-Schleifen.
Die genaue Lösung musst Du Dir selber überlegen.
Ein Tip noch: nehme als Typ für Frage ‚string‘ und wandle ihn mit der C-Funktion atoi in int um. frage.c_str() ergäbe dann übrigens den benötigten char-Array.

Hallo,

als Anfaenger kann ich dir nur den Tipp geben das „goto“ ein fuer allemal aus deinen C/C++ Wissen zu streichen! Damit machst du dir nur Probleme und programmierst so genannten Spaghetticode!

Als Tipp zum Suchen -wegen des Programmabbruchs mit der ESC-Taste-: Du liest mit get() die Eingabe der Tastatur. 1. Es gibt nicht nur get() zum Einlesen von der Console. Und 2. Alle Tasten haben einen bestimmten (ASCII-)Code. Den kannst du vergleichen und die Eingabe pruefen, ob es die ESC-Taste war.

Das Programm mittendrin zu unterbrechen ist nicht ganz so einfach. Da wirst du noch ein paar Uebungsstunden brauchen, bis das Thema Threads dran kommt. Vorerst sind aber die Abfragen der Eingabe zu vergleichen.

Schoen, dass es solche Aufgaben immer noch gibt :smile: Fuehle mich gleich um 20 jahre zurueck versetzt und muss an die erste Aufgabe im C-Programmierungs-Praktikum denken :smile: Da war es ein Muenzautomat, der passen das Rueckgeld berechnet hat und je nach Eingabe auch noch etwas zurueck geben musste… Ach ja, damals :smile:

Gruss und bei weiteren Fragen einfach wieder melden!
Andreas


Guten Tag
Ich bin C++ Anfänger…ich will das Programm mit ESC-taste
unterbrechen…weiß leider nur nicht wie…es soll mit do while
Befehl gehen…kann jemand mir netterweise schreiben wie es
geht…hier das Programm

#include
#include
using namespace std;
int main ( )

{

int frage,x,y,ergeb;

anfang:
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
ergeb=x*y;

fragen:

cout >frage;

if (frage==ergeb)
{
cout