C++ Beendigung bei Funktions-abruf verhindern?

... komplette Frage anzeigen

2 Antworten

du kannst eine while schleife machen

du machst zuest

command = tastatureingabe

und dann
while (command nicht gleich "beenden")
{
if(command gleich x){
mache irgendwas
}
else if (command gleich usw)
{
mache was anderes
}
...
command = tastatureingabe
}

... ich programmier in Java, deshalb habs ich nur schemahaft aufgeschrieben

Antwort bewerten Vielen Dank für Deine Bewertung

Ich habe das Problem jetzt gelöst, in dem ich die Funktion Command() in jeder Befehlsfunktion am ende abfrage.

Dazu musste ich die Funktion jedoch am Codeanfang initialisieren. 
void Command();

int getArea() {
    double lenght, width;
    ...
   ...
}
void Command() {
    string command;
    cin >> command;
   ....
}

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von sekoch
13.06.2016, 18:07
includes

using namespace std;


void Command();

int getArea() {
double lenght, width;
cout << "Um den Umfang zu berechen wird die Länge und die Breite des Objekts benötigt.\n";
cout << "Geben Sie die Länge in cm ein: ";
if (!(cin >> lenght)) {
cout << "Fehler in der Eingabe: Wohl möglich keine Zahl!";
exit(1);
};
cout << "Geben Sie die Breite in cm ein: ";
if (!(cin >> width)) {
cout << "Fehler in der Eingabe: Wohl möglich keine Zahl!";
exit(1);
};
cout << "Der Umfang des Objektes beträgt " << lenght * width << " cm.";
Command();
}

void getScope() {
double lenght, width;
cout << "Um die Fläche zu berechen wird die Länge und die Breite des Objekts benötigt.\n";
cout << "Geben Sie die Länge in cm ein: ";
if (!(cin >> lenght)) {
cout << "Fehler in der Eingabe: Wohl möglich keine Zahl!";
exit(1);
};
cout << "Geben Sie die Breite in cm ein: ";
if (!(cin >> width)) {
cout << "Fehler in der Eingabe: Wohl möglich keine Zahl!";
exit(1);
};
cout << "Die Fläche des Objektes beträgt " << (2 * lenght) + (2 * width) << " cm.";
Command();
}

void getHelp() {
cout << "help " << " - Zeigt alle verfügbaren Befehle." << endl;
cout << "area " << " - Errechnet den Flächeninhalt." << endl;
cout << "scope " << " - Errechnet den Umlang." << endl;
Command();
};

void Command() {
string command;
cin >> command;
if (command == "help") {
getHelp();
} else if (command == "scope") {
getScope();
} else if (command == "area") {
getArea();
} else {
cout << "Geben Sie einen Befehl ein\n";
cout << "help eingeben, um alle Befehle zu erhalten.";
}
}

int main(int argc, char** argv) {
cout << "Geben Sie einen Befehl ein.\n";
cout << "help eingeben, um alle Befehle zu erhalten.\n";
Command();
return 0;
}
0