D
DrHastig
Moin,
ich habe mein Problem bereits gelöst aber ich verstehe meine eigene Lösung nicht -_-
Ich habe in einem Miniprog ca. folgenden Codeaufbau.
C++:
int main()
{
int auswahl(0);
bool ende(false);
std::string str1(""), str2("");
do
{
//auswahl = 0; Ohne die Anweisung kommts zur Endlosschleife
std::cout << ...;
std::cin >> auswahl;
switch(auswahl)
{
case 1:
ende = false;
std::cin.ignore();
getline(std::cin, str1);
...
[Manipulation der Strings]
...
break;
case 2:
ende = false;
std::cin.ignore();
getline(std::cin, str2);
...
[Manipulation der Strings]
...
break;
default:
ende = true;
std::cout << "\nProgramm wird beendet!" << std::endl;
break;
}
std::cout << std::endl << std::endl;
} while(!ende);
return 0;
}
Wenn ich im ersten Druchlauf einen Buchstaben eingebe, dann wird das Programm so wie es soll beendet.
Wenn ich im ersten Druchlauf so wie mans soll eine Zahl eingebe und im zweiten einen Buchstaben, dann löst dies eine Endlosschleife aus in der nichtmals eine neue Auswahl angefragt wird.
Das Problem habe ich gelöst indem ich die Variabel auswahl wieder = 0 setze bevor ich sie einlese.
Frage ist nun warum funktioniert das so? Ich find es immer nerfig wenn man seine eigenen Lösungen nicht versteht -_-
Zuletzt bearbeitet von einem Moderator: