c++ funktion in funktion abrufen hilfe!!



  • ich versuche eine funktion in einer anderen abzurufen nur will es nicht funktionieren weiss auch nicht warum könnte mir jemand da weiter helfen.
    hier der code:

    #include "stdafx.h"

    #include <iostream>

    using namespace std;

    void main()
    {
    int zahl1, zahl2, ergebnis;
    cout << "Geben Sie eine Rechenaufgabe ein: ";
    int rechneInt;
    char n;
    cout << "weiter rechnen? j=ja: ";
    cin >> n ;
    while (n == 'j')
    {
    int rechneInt;
    }

    }

    int rechneInt()
    {
    int zahl1, zahl2, ergebnis;
    char rechenzeichen;
    cin >> zahl1 >> rechenzeichen >> zahl2;
    switch (rechenzeichen)
    {
    case '+': ergebnis = zahl1 + zahl2; break;
    case '-': ergebnis = zahl1 - zahl2; break;
    case '*': ergebnis = zahl1 * zahl2; break;
    case '/': ergebnis = zahl1 / zahl2; break;
    case '%': ergebnis = zahl1 % zahl2; break;

    default: cout << "unbekanntes Rechenzeichen...\n"; return 1;

    if (rechenzeichen == '/' && zahl1 || zahl2 == 0)
    {
    cout << "Division durch Null nicht möglich";
    }
    }
    cout << zahl1 << ' ' << rechenzeichen << ' ' << zahl2 << " = " << ergebnis << '\n';
    }

    hier verusche ich rechneInt in meiner main zu benutzen nur will es einfach nicht.



  • AHA schrieb:

    nur will es einfach nicht.

    Ein Jammer...



  • Echt Betroffener schrieb:

    AHA schrieb:

    nur will es einfach nicht.

    Ein Jammer...

    wenn man nicht helfen möchte/kann dann bitte gar nicht es kommentieren danke


  • Mod

    Er hat dir geholfen, du hast es bloß nicht verstanden.



  • Wenn man keine konkreten Fragen stellt, bitte ganz weg bleiben, danke.



  • SG1 schrieb:

    Wenn man keine konkreten Fragen stellt, bitte ganz weg bleiben, danke.

    und ws versteht man da nicht ich will rechneInt in der main benutzen aber will nicht funktionieren was ist da falsch



  • AHA schrieb:

    SG1 schrieb:

    Wenn man keine konkreten Fragen stellt, bitte ganz weg bleiben, danke.

    und ws versteht man da nicht ich will rechneInt in der main benutzen aber will nicht funktionieren was ist da falsch

    Ja ja, das sind die Compiler von heute. Sagen einfach "will nich".



  • alter wo bin ich hier geraten keiner will hlefen nice die community hier



  • manni66 schrieb:

    Ja ja, das sind die Compiler von heute. Sagen einfach "will nich".

    Der Compiler sagt ja wirklich nicht viel. Ne Warning, wegen ungenutzer, lokaler Variablen.

    @AHA: Du rufst nirgens eine Funktion auf. Ein Funktionsaufruf sieht so aus:

    f();
    


  • Jockelx schrieb:

    manni66 schrieb:

    Ja ja, das sind die Compiler von heute. Sagen einfach "will nich".

    Der Compiler sagt ja wirklich nicht viel. Ne Warning, wegen ungenutzer, lokaler Variablen.

    @AHA: Du rufst nirgens eine Funktion auf. Ein Funktionsaufruf sieht so aus:

    f();
    

    das weiss ich, ich schreibe da halt rechneInt(); aber funktioniert auch nicht der greift da nicht zu und ich verstehe einfach nicht warum und danke dir bist die erste person die wenigstens versucht zu helfen xD



  • rechneInt() steht aber nirges in deiner main



  • AHA schrieb:

    ich schreibe da halt rechneInt();

    Dann kompiliert es nicht...
    lass mich raten: du hast das int davor stehen gelassen, also 'int rechneInt();'?



  • Fangen wir noch mal von vorne an:

    1. Du formatierst deinen Quelltext, so dass man ihn auch lesen kann. Die entprechenden Tags findest du unter dem Texteingabefeld.

    2. Du stellst konkrete Fragen. "Hilfe, mein Programm funktioniert nicht" ist keine konkrete Frage, also antwortet dir auch niemand.

    3. Du postest die Fehlermeldungen des Compilers.

    4. Satzzeichen schaden nicht.

    Ich hoffe mal, dass du das hinkriegst, sonst stehen die Chancen auf Hilfe schlecht.



  • Und du schreibst noch dazu, was du beim Programmlauf eingibst.

    Die Leute hier haben viel mit Computern zu tun.
    Sie sind es gewohnt exakte Anweisungen zu geben.

    Der Computer macht auch das, was du ihm sagst und nicht, was du möchtest.
    Daher ist es wichtig, klare Aussagen zu machen.



  • AHA schrieb:

    alter wo bin ich hier geraten keiner will hlefen nice die community hier

    Die Community hier ist eigentlich sehr hilfsbereit, allerdings erwartet man hier auch etwas Eigeninitiative vom Fragesteller.
    Dazu gehört mindestens eine genaue Fehlerbeschreibung und bevorzugt lesbar formatierter Code (siehe Kommentar von DocShoe).

    Schau dir mal vorherigen Beiträge in diesem Forum an, bevorzugt diejenigen mit "Hilfe" gefolgt von einem oder mehr Ausrufezeichen im Titel:
    Hier postet alle paar Tage jemand einen Beitrag nach deinem Muster, der auf potentielle Helfer wirkt, wie eine ausgekippte Mistschubkarre:
    Eine Wand aus unformatiertem Code-Gewusel und "funktioniert nicht" als Problembeschreibung, obwohl oben in den Sticky-Threads genau
    beschrieben ist, wie man es ordentlich macht.

    Vielleicht hilft dir das zu verstehen, warum hier manche keine Lust mehr haben diese Leute regelmässig bei der Hand zu nehmen und sie
    stattdessen mit einem Wink wie "Ein Jammer..." zu mehr Eigeninitiative zu provozieren wollen.

    Übrigens: "Ein Jammer..." eine formell korrekte Reaktion auf deinen Beitrag, da du lediglich eine Geschichte erzählt (Aussage), und keine
    Frage gestellt hast. Die Leute hier sind manchmal sehr formal veranlagt und reagieren schonmal nur dann mit einer Antwort, wenn der
    Syntax-Parser im Kopf auch tatsächlich eine Frage erkannt hat 😃



  • Jockelx schrieb:

    AHA schrieb:

    ich schreibe da halt rechneInt();

    Dann kompiliert es nicht...
    lass mich raten: du hast das int davor stehen gelassen, also 'int rechneInt();'?

    void main()
    {
    int zahl1, zahl2, ergebnis;
    cout << "Geben Sie eine Rechenaufgabe ein: ";
    rechneInt();
    char n;
    cout << "weiter rechnen? j=ja: ";
    cin >> n ;
    while (n == 'j')
    {
    rechneInt();
    }

    }

    so steht das bei mir und der gibt die meldung

    Error C3861 'rechneInt': identifier not found

    und genau dies versteh ich nicht obwohl es definiert ist hierzu bruahc ich hilfe ich hoffe das reicht euch als frage



  • In Deinem ersten Beitrag sieht es so aus, als ob die Funktion nach der main - Funktion definiert ist.
    Wenn das so ist, musst Du sie vor der main - Funktion deklarieren, sonst kennt der Compiler sie nicht, wenn er den Aufruf in main findet.

    Oder aber Du definierst die Funktion vor der main - Funktion.



  • habs jetzt danke an diejenigen die versucht haben mir zu helfen



    Also ich glaube mal du willst in dieser zeile die funktion rechneInt() aufrufen

    int rechneInt;
    

    Das funktioniert so aber nicht, du erstellst hier nur eine variable mit den namen rechneInt. Wenn du willst das es funktioniert mach es so 😃

    int rechne = rechneInt();
    

    2.Wenn du die funktion in der main nutzen willst musst die vorher decladieren(Ich weiß nicht wie das richtig heisst aber egal:D) etwar so:

    #include <iostream>
    
    using namespace std;
    
    int rechneInt(); //Declaracion damit die funktion in der main gultig ist :D
    
    void main()
    {
    

    Oder du stellst die rechneInt funktion vor die main funktion 😃 geht beides also mach es wie du willst 🙂

    Ich habe es selber kompiliert und es hat mit diesen veränderungen perfekt funktioniert 😃

    PS:Vielleicht wer es besser wenn du die void main in ein int main änderst und dan auch nicht das return 0; am ende der funktion vergessen.

    Hoffe ichkönnte dir helfen wenn du das hier überhaupt noch liest 🙂

    SRY wegen der rechtschreibung 😃


Log in to reply