Programmwiederhoung wie?
-
Verzeih, doch den gesamten Code schrieb ich hier direkt im Forum, da hatte ich in Dingen Einrücken nicht viele Möglichkeiten.
-
Hab´s auch so verstanden
Danke
-
Mis2com: Das wirkt irgendwie unnötig kompliziert, machst Du das immer so?
edit: Ich meine nichts für ungut, aber das gleiche kannst Du auch so oder so ähnlich haben:
char c = 'j'; do { cout << "Hallo\n"; cout << "Noch eine Runde? (j/n) "; cin >> c; } while (tolower(c) == 'j');
-
nman schrieb:
char c = 'j'; do { cout << "Hallo\n"; cout << "Noch eine Runde? (j/n) "; cin >> c; } while (tolower(c) == 'j');
tolower(static_cast<unsigned char>(c)) == 'j'
Dann läuft das auch auf Systemen bei denen char ein signed-Typ ist wie gewünscht.
-
nman:
Es ist insofern kompliziert, als dass ich nicht einfach annehme, dass jedes Zeichen außer j für nein steht, gerade bei wichtigeren Fragen sollte man hier darauf hinweisen, dass es die Eingabe nicht gibt.MfG Eisflamme
-
Mis2com schrieb:
nman:
Es ist insofern kompliziert, als dass ich nicht einfach annehme, dass jedes Zeichen außer j für nein steht, gerade bei wichtigeren Fragen sollte man hier darauf hinweisen, dass es die Eingabe nicht gibt.Hm, mir geht derartiges Verhalten zwar auf die Nerven, aber auch gut:
char c; do { cout << "Hallo\n"; do { cout << "Noch eine Runde? (j/n) "; cin >> c; c = tolower(static_cast<unsigned char>(c)); } while (c !='j' && c != 'n'); } while (c == 'j');
-
@Mis2com
Schlechter Codingstyle, findest Du nicht?
-
Warum unbedingt ne schleife?
Einfach so:
int funktion() { char a; cout<<"Rechnen, oder so..."<<endl; cout<<"Nochmal versuchen? (j / n)"<<endl; cin>>a; if(a == 'j' || a == 'J') { funktion(); } else { cout<<"Dann halt nicht..."<<endl; return 0; }
Schreib ne funktion, und ruf sie wieder auf. Falls dus in der main() stehen hast, kannste versuchen die auch nomma aufzurufen, geht zwar nach neuem standart angeblich nicht, aber ich habs probiert (Dev Cpp 4 und g++ (sry ka welche version)) und es ging wundersamer weise
probiers aus
-
Und nun verratet mir wieso "Standart" da oben zensiert wurde O.o
-
weil standard die richtige schreibweise ist?