Mir unbekannte Compiler Fehler. C++ - Kate - Debian



  • Guten Tag Forum,

    und zwar habe ich folgende 2 Compiler Fehler.

    int Ausgabe(int menge) {
        int ausgabe = 0;
    
        cout << "--- Getränkeausgabe ---" << endl;
    
        if (Bezahlen(menge) <= 1) {
            while (ausgabe < menge) {
                ++ausgabe;
                cout << "Flasche " << ausgabe << " von " << menge << " wurde ausgegeben" << endl;
            }
    
            cout << "Vielen Dank für Ihren Einkauf! ";
            if (menge > 1) {
                cout << "Sie können Ihre Getränke jetzt nehmen." << endl;
            } else {
                cout << "Sie können Ihr Getränk jetzt nehmen." << endl;
            }
    
        } else {
            break;
        }
    
        return 0;
    

    Der Fehler liegt hier laut Compiler bei der ersten if-schleife.

    Getränkeautomat_mit_Funktionen_Teil_2.cpp:138:23: error: too few arguments to function ‘float Bezahlen(int, int)’
    if (Bezahlen(menge) <= 1) {
    ^

    Jetzt zum zweiten Fehler:

    Dieser liegt beim break; vor der letzten schließenden geschweiften Klammer.

    Getränkeautomat_mit_Funktionen_Teil_2.cpp:152:9: error: break statement not within loop or switch
    break;
    ^

    Ich habe beide Fehler gegoogelt und weiß leider nicht wie diese entstehen konnten.

    MfG blue



  • blueprog schrieb:

    Ich habe beide Fehler gegoogelt und weiß leider nicht wie diese entstehen konnten.

    Dann solltest du das mit dem Programmieren besser lassen. Ich zumindest wüsste nicht, wie der Compiler hier noch klarer werden kann, dass deinem Funktionsaufruf noch ein Parameter fehlt und dass das break komplett sinnlos ist.



  • blueprog schrieb:

    Getränkeautomat_mit_Funktionen_Teil_2.cpp:138:23: error: too few arguments to function ‘float Bezahlen(int, int)’
    if (Bezahlen(menge) <= 1) {

    ^
    Was ist denn daran nicht zu verstehen? Die Funktion will zwei Werte, du lieferst aber nur einen.

    blueprog schrieb:

    Der Fehler liegt hier laut Compiler bei der ersten if-schleife.
    ....
    Dieser liegt beim break; vor der letzten schließenden geschweiften Klammer.

    Getränkeautomat_mit_Funktionen_Teil_2.cpp:152:9: error: break statement not within loop or switch
    break;
    ^

    if ist keine Schleife => kein break.



  • Der Compiler und die Beiden (dachschaden, manni66) meinen die Funktion Bezahlen.

    Und die gibt einen float -Wert zurück, der evtl auch wichtig ist.



  • Vielen Danke für die Antworten. Ich bin im Moment in der Lehre zum Fachinformatiker und lerne das alles erst gerade. Da müsst Ihr mir verzeihen wenn ich manche Gedankengänge noch nicht ganz zu ende denke oder sie richtig interpretiere. C++ lerne ich erst seit ca. 3 Wochen auch fast ohne Hilfe, deswegen jetzt auch die Frage hier.

    PS: Aufgabe habe ich gelöst. Danke für die Hilfe.



  • blueprog schrieb:

    Vielen Danke für die Antworten. Ich bin im Moment in der Lehre zum Fachinformatiker und lerne das alles erst gerade.

    Du machst eine Lehre, ohne dir vorher die absoluten Grundkenntnisse angeschaut zu haben? Weia.

    Ich habe sowas auch gemacht, und ich sag' dir, wenn bei uns jemand ohne Plan eine Lehre anfangen wollte, dann haben wir ihn nicht genommen. Also, als Auszubildenden jetzt. Und Funktionsaufrufe sind nun mal absolutes Minimum.

    blueprog schrieb:

    Da müsst Ihr mir verzeihen wenn ich manche Gedankengänge noch nicht ganz zu ende denke oder sie richtig interpretiere.

    Ass-covering.

    Die Logik haben wir nicht mal beanstandet (wie auch, wenn uns der komplette Code fehlt), du scheiterst schon am Verständnis der Fehlermeldungen des Compilers. Das hätte so ablaufen sollen:

    -> Programmieren
    -> "Kompilieren" klicken
    -> Fehlermeldung bemerken
    -> Fehlermeldung lesen
    -> "WTF ist jetzt dein Problem?"
    -> In die Zeile gehen
    -> "Oh, Scheiße, der will zwei Parameter, ich geb nur einen, klar, dass das nicht funzt"
    -> Entweder schnell zweiten Parameter hinzufügen oder bemerken, dass man einen Designfehler hat (DANN kann man davon reden, nicht alles durchdacht zu haben).

    Aber du bist ja bereits davor gescheitert.

    blueprog schrieb:

    C++ lerne ich erst seit ca. 3 Wochen auch fast ohne Hilfe, deswegen jetzt auch die Frage hier.

    Moment. Du lernst das gerade erst, und der Betrieb weiß das, und dennoch gibt es da keinen, den du fragen kannst?

    Finster.



  • Jap, ohne Vorkenntnisse. 🙄 Ich habe aber gewusst auf was ich mich einlasse und mein Chef wusste es ebenfalls. Seine Aussage "Das schaffen wir schon!" 😃 Teilweise bin ich schon recht überfordert was wahrscheinlich mein klägliches scheitern erklären könnte.

    Das Problem im Moment ist das mein Ausbilder diese Woche krank ist und ich fast auf mich Allein gestellt bin. Der Abteilungsleiter ist zwar auch noch da (wir sind bloß 3 Personen in der Abteilung) aber der steht an dauernd unter Strom und den möchte ich ungern zu oft mit teils auch überflüssigen Fragen nerven.

    MfG blue



  • Ja, das geht auch mal gar nicht. Eine Lehre anfangen und denken, die ist dafür da, dass man eben dort das Wissen her bekommt.

    </ironie> <!-- nur zur Sicherheit -->


Anmelden zum Antworten