Programm Ende mit Abfrage Ja/Nein Wie?
-
Fehler
-
Poste mal etwas mehr Code, das ist zu wenig. Verwendest du z.B. strings, C-Strings, befindet sich die switch Fallunterscheidung in der main-Funktion? Die ganzen Dinge spielen eine Rolle, um dir eine Antwort geben zu können.
-
... int main( void ) { ... switch... { ... case 'e': { char c; cout <<"Wollen Sie das Programm wirklich beenden? J/N: "; cin >> c; cout <<endl; if ( c == 'J' || c == 'j' ) { return 0; } break; } ... } ... return 0; }
Ansonsten musst du mehr Code rausrücken
-
if ( c == 'J' || c == 'j' ) { return 0; } break;
Was soll denn das sein?! Wenn c 'J' ODER 'j' entspricht, soll das Programm beendet werden? Zudem ist das break überflüssig, da es sowieso nie erreicht wird, wenn du zuvor mittels "return 0" das Programm beendet hast. Die geschweiften Klammern in der if-Fallunterscheidung sind auch überflüssig.
-
mikey schrieb:
if ( c == 'J' || c == 'j' ) { return 0; } break;
Was soll denn das sein?! Wenn c 'J' ODER 'j' entspricht, soll das Programm beendet werden? Zudem ist das break überflüssig, da es sowieso nie erreicht wird, wenn du zuvor mittels "return 0" das Programm beendet hast. Die geschweiften Klammern in der if-Fallunterscheidung sind auch überflüssig.
die geschweiften klammer sind stilsache. das break wird sehr wohl erreicht, nämlich wenn (c!='J' || c!='J')
-
Ich sollte schlafen gehen, du hast Recht.
-
TravisG schrieb:
mikey schrieb:
if ( c == 'J' || c == 'j' ) { return 0; } break;
Was soll denn das sein?! Wenn c 'J' ODER 'j' entspricht, soll das Programm beendet werden? Zudem ist das break überflüssig, da es sowieso nie erreicht wird, wenn du zuvor mittels "return 0" das Programm beendet hast. Die geschweiften Klammern in der if-Fallunterscheidung sind auch überflüssig.
die geschweiften klammer sind stilsache. das break wird sehr wohl erreicht, nämlich wenn (c!='J' || c!='J')
Ich würde sagen die Klammern sind wegen der Variablendeklaration...
-
WirWerdenLetzter schrieb:
Ich würde sagen die Klammern sind wegen der Variablendeklaration...
So ein Schwachsinn wo siehst du hier eine Variablendeklaration?
-
fehler
-
#include <iostream> #include <windows.h> #include "Laeufer.h" #include "Verein.h" #include "Vereinslaeufer.h" using namespace std; int main() { LAEUFER a_Laeufer[500]; char Auswahl; while ( true ) { system ( "cls" ); // Ist böse, aber erfüllt seinen Zweck! cout << "Crosslauf Deggendorf 2007" << endl << "Teilnehmer des Wettkampfes" << endl << "-------------------------------------------------\n" << endl << "\t A Teilnehmer anlegen" << endl << "\t B Teilnhemer anzeigen" << endl << "\t C Die Laufzeit der Teilnehmer eingeben" << endl << "\t D Das Ergebniss des Wettkampfes anzeigen\n" << endl << "-------------------------------------------------" << endl << " E Beenden des Programmes" << endl << "-------------------------------------------------" << endl << "Ihre Auswahl bitte: "; cin >> Auswahl; cout << endl; switch( Auswahl ) { case 'a': case 'A': cout << "Sie haben a gedrückt"<<endl; break; case 'b': case 'B': cout << "Sie haben b gedrückt"<<endl; break; case 'c': case 'C': cout << "Sie haben c gedrückt"<<endl; break; case 'd': case 'D': cout << "Sie haben d gedrückt"<<endl; break; case 'e': case 'E': { char Beenden; cout << "Wollen Sie das Programm wirklich beenden? [J/N]: "; cin >> Beenden; cout << endl; if ( Beenden == 'J' || Beenden == 'j' ) { return 0; } break; } } } return 0; }
Ungetestet! Sollte aber klappen... Auf jedenfall ist dein vorheriger Code absolut tot und nicht lauffähig!
-
#include <iostream> #include "Laeufer.h" #include "Verein.h" #include "Vereinslaeufer.h" int main() { LAEUFER a_Laeufer[500]; char Auswahl; while ( true ) { system ("cls"); cout <<"Crosslauf Deggendorf 2007" <<endl <<"Teilnehmer des Wettkampfes"<<endl <<"-------------------------------------------------\n"<<endl <<"\t A Teilnehmer anlegen"<<endl <<"\t B Teilnhemer anzeigen"<<endl <<"\t C Die Laufzeit der Teilnehmer eingeben"<<endl <<"\t D Das Ergebniss des Wettkampfes anzeigen\n"<<endl <<"-------------------------------------------------"<<endl <<" E Beenden des Programmes"<<endl <<"-------------------------------------------------"<<endl <<"Ihre Auswahl bitte: "; cin >> Auswahl; cout << endl; switch(Auswahl) { case 'a': cout <<"Sie haben b gedrückt"<<endl; break; case 'b': cout <<"Sie haben b gedrückt"<<endl; break; case 'c': cout <<"Sie haben c gedrückt"<<endl; break; case 'd': cout <<"Sie haben d gedrückt"<<endl; case 'e': { char beenden; cout <<"Wollen Sie das Programm wirklich beenden? [Ja/Nein]: "; cin >> beenden; cout <<endl; if (beenden == 'JA' || beenden == 'ja') { return 0; } break; } } } return 0; }
-
Hi,
Habe das Probiert, jetzt Komme ich mit jeder Eingabe wieder in mein Programm.
Kann aber durch die Eingabe Ja das Programm nicht verlassen.
Ist aber schon spät, vielleicht übersehe ich noch etwas.Weiss jetzt auch nicht.
Danke bis dann
-
beenden ist ein char, und char ist ein Zeichen, weder "JA" noch "ja" passt da rein. Hat dein Compiler sich nicht darüber beklagt?
Wenn du mehrere Zeichen auf einmal willst, benutz std::string.
-
MFK schrieb:
beenden ist ein char, und char ist ein Zeichen, weder "JA" noch "ja" passt da rein. Hat dein Compiler sich nicht darüber beklagt?
Wenn du mehrere Zeichen auf einmal willst, benutz std::string.
Warum übernimmst du nicht meinen Code? Siehe auf der Seite davor...
-
Hat jetzt funktioniert,
Habe das wieder übersehen, dass der char nur einzelne Zeichen akzeptiert.
-
Du siehst das etwas falsch. Akzeptieren tut char garnichts. Das tust wenn dann du, es ist deine Entscheidung, ob du 1 Byte oder mehrere Byte Speicher reservierst. Und ein char ist nunmal ein Byte groß. Wenn du Zeichenketten (=Strings) speichern möchtest, solltest du entweder C-Strings nehmen, oder bevorzugt auf std::string zurückgreifen.
-
Fehler
-
fehler
-
Ja was ist denn das?!
Ich muss echt mal ganz genau schauen, wo du was falsch gemacht hast...Schreib einfach nochmal das Programm...Ich hab echt absolut kene Ahnung...sorry :p
-
tw14199 schrieb:
fehler
Du ich glaub da is noch nen Fehla !