error C2064: Ausdruck ergibt keine Funktion, die 2 Argumente übernimmt



  • gute abend

    was könnte die meldung bedeuten:

    error C2064: Ausdruck ergibt keine Funktion, die 2 Argumente übernimmt
    

    ?



  • Ohne konkreten Code schwer zu sagen.

    Es könnte sowas sein

    void foo(int var)
    { /* */ }
    
    int main()
    {
      foo(2,3) // hier sollte nur ein Argument stehen
      return 0;
    }
    

    Aber poste mal etwas Code, dann wird dir auch geholfen.

    Gruß
    Don06



  • Don06 schrieb:

    Ohne konkreten Code schwer zu sagen.

    Es könnte sowas sein

    void foo(int var)
    { /* */ }
    
    int main()
    {
      foo(2,3) // hier sollte nur ein Argument stehen
      return 0;
    }
    

    Aber poste mal etwas Code, dann wird dir auch geholfen.

    Gruß
    Don06

    hallo

    sorry,dass ich ohne Quelltext gepostet hab,ich wollte nur schnell meine Hausübung fertig machen,weil ich gleich schlafen muss,sorry es passiert nie wieder mehr,versprochen 😉

    hier ist der magische Quelltext xD

    int main()
    {
    	int eingabe;
    	float grundflaeche = 2, hoehe = 6, volumen = 3;
    	std::cout<<"1. Volumen berechnen"<<std::endl<<"2. Hoehe berechnen"<<std::endl;
    	switch(eingabe)
    	{
    	case 1:
    		volumen(grundflaeche, hoehe);
    	case 2:
    		hoehe(grundflaeche, volumen);
    	default:
    		std::cout<<"Falsche eingabe."<<std::endl;
    	}
    	return 0;
    }
    
    float volumen(float grundflaeche, float hoehe)
    {
    	std::cout<<"Grundflaeche: ";
    	std::cin>>grundflaeche;
    	std::cout<<"\n"<<"Hoehe: ";
    	std::cin>>hoehe;
    	std::cout<<"\n";
    	float summe = (grundflaeche * hoehe) / 3;
    	std::cout<<"Volumen: ";
    	std::cout<<summe;
    return summe;
    }
    
    float hoehe(float grundflaeche, float volumen)
    {
    	std::cout<<"Grundflaeche: ";
    	std::cin>>grundflaeche;
    	std::cout<<"\n"<<"volumen: ";
    	std::cin>>volumen;
    	std::cout<<"\n";
    	float summe = (volumen * 3) / grundflaeche;
    	std::cout<<"Hoehe: "<<summe;
    	return summe;
    }
    


  • also ich hab net viel ahnung aber ich denke ich wies es
    versuchs mal mit prototypen schreib mal über main die prototypen also
    float volumen(float,float);
    float hoehe(float,float);

    oder schreib die funktionen alle über main



  • Massiv schrieb:

    also ich hab net viel ahnung aber ich denke ich wies es
    versuchs mal mit prototypen schreib mal über main die prototypen also
    float volumen(float,float);
    float hoehe(float,float);

    oder schreib die funktionen alle über main

    hi

    danke,aber es funktioniert leider noch immer nicht,der selbe Fehler 😞
    Aber trodzdem echt vielmals Danke 😉



  • du hast imn quelltext int eingabe und diese benutzt du mit eine switch case anweisung
    wo tippt man im quelltext eingabe ein???

    will nur helfen ich kenn nur c sry also wenn das im code drin steht aber das ist doch cin und ich seh nix mit cin und eingabe



  • Sorry für die Störung, ich weiß das passt jetzt nicht zum Thema, aba ich bin voll am verzweifeln:
    Ich hab ein kleines Programm geschrieben, dass einige Checks durchführt,wie z.B. "Ping".
    Nun möchte ich aber die Antwort aus der Shell wieder einlesen und komm auf keinen Nenner. Ich könnt mir denken, dass dies nicht so schwer ist, doch für einen so blutigen Anfänger wie mich 🙂
    Wäre echt dankbar für eure Hilfe



  • auf welche zeile bezieht sich denn fehlermeldung?
    \edit:

    Pinu schrieb:

    Sorry für die Störung, ich weiß das passt jetzt nicht zum Thema, aba ich bin voll am verzweifeln:
    Ich hab ein kleines Programm geschrieben, dass einige Checks durchführt,wie z.B. "Ping".
    Nun möchte ich aber die Antwort aus der Shell wieder einlesen und komm auf keinen Nenner. Ich könnt mir denken, dass dies nicht so schwer ist, doch für einen so blutigen Anfänger wie mich 🙂
    Wäre echt dankbar für eure Hilfe

    hallo? wer bist du denn überhaupt??



  • Karsten



  • Habt ihr ne Idee? Muss die Antwort nämlich an ein anderes Programm übergeben, funzt nur leider nicht



  • achso, dacht ich's mir doch, natürlich, "_der_ karsten" wer denn sonst^^

    \edit: wtf, was geht hier überhaupt ab... 😕
    \edit2: kann ein moderator die letzten vier beiträge bitte löschen, der karsten hatte wohl ein paar probleme damit, einen neuen thread zu eröffnen...



  • [quote="Andrey"]auf welche zeile bezieht sich denn fehlermeldung?
    quote]

    Zeile 39 und 41,also:

    Zeile 39:

    volumen(grundflaeche, hoehe);
    

    und Zeile 41:

    hoehe(grundflaeche, volumen);
    

    mfg



  • Cha, ich habs.

    Du legst eine Variable volumen an. Diese verdeckt die Funktion volumen.
    Nenne deine Funktionen irgendwie berechneVolumen, berechneHoehe.

    Gruß
    Don06



  • Don06 schrieb:

    Cha, ich habs.

    Du legst eine Variable volumen an. Diese verdeckt die Funktion volumen.
    Nenne deine Funktionen irgendwie berechneVolumen, berechneHoehe.

    Gruß
    Don06

    Danke, es hat geklappt, danke danke und nochmals danke 😉

    mfg



  • Übrigens:
    Du scheints die breaks in der switch case Anweisung vergessen zu haben

    switch(var)
    {
      case 1:
        // tue irgendtwas
        break; <-- wichtig
      case 2:
        // fehlt das break; bei case 1: wird auch das hier ausgeführt
        break;
    }
    

    Fehlt das "break;" am Ende wird die nachfolgende Anweisung auch noch ausgeführt.

    @Offtopic: Lernt ihr sowas in der Schule? (Hausübung?)
    Irgendwie ist das ein zu guter Programmierstil für einen Schüler.
    Naja.

    Gruß
    Don06



  • Entschuldigung @Andrey
    Wusste mir nicht anders zu helfen



  • Warum übergibst du eigentlich Werte an deine Funktionen? So wie du das handhabst, ist das ziemlich überflüssig.

    int main()
    {
        int eingabe;
        float grundflaeche = 2, hoehe = 6, volumen = 3;
        std::cout<<"1. Volumen berechnen"<<std::endl<<"2. Hoehe berechnen"<<std::endl;
        switch(eingabe)
        {
        case 1:
            volumen(grundflaeche, hoehe); //hier und
        case 2:
            hoehe(grundflaeche, volumen); //hier übergibst du Werte an die Funktionen
        default:
            std::cout<<"Falsche eingabe."<<std::endl;
        }
        return 0;
    }
    
    float volumen(float grundflaeche, float hoehe)
    {
        std::cout<<"Grundflaeche: ";
        std::cin>>grundflaeche; //und hier
        std::cout<<"\n"<<"Hoehe: ";
        std::cin>>hoehe; //und hier überschreibst du die übergebenen Werte
        std::cout<<"\n";
        float summe = (grundflaeche * hoehe) / 3;
        std::cout<<"Volumen: ";
        std::cout<<summe;
    return summe;
    }
    
    float hoehe(float grundflaeche, float volumen)
    {
        std::cout<<"Grundflaeche: ";
        std::cin>>grundflaeche; //hier und 
        std::cout<<"\n"<<"volumen: ";
        std::cin>>volumen; //hier genauso
        std::cout<<"\n";
        float summe = (volumen * 3) / grundflaeche;
        std::cout<<"Hoehe: "<<summe;
        return summe;
    }
    

    Da kannst du auch einfach folgendes machen:

    int main()
    {
        int eingabe;
        std::cout<<"1. Volumen berechnen"<<std::endl<<"2. Hoehe berechnen"<<std::endl;
        switch(eingabe)
        {
        case 1:
            volumen();
        case 2:
            hoehe();
        default:
            std::cout<<"Falsche eingabe."<<std::endl;
        }
        return 0;
    }
    
    float volumen()
    {
        float grundflaeche;
        float hoehe;
    
        std::cout<<"Grundflaeche: ";
        std::cin>>grundflaeche;
        std::cout<<"\n"<<"Hoehe: ";
        std::cin>>hoehe;
        std::cout<<"\n";
        float summe = (grundflaeche * hoehe) / 3;
        std::cout<<"Volumen: ";
        std::cout<<summe;
    return summe;
    }
    
    float hoehe()
    {
        float grundflaeche;
        float volumen;
    
        std::cout<<"Grundflaeche: ";
        std::cin>>grundflaeche;
        std::cout<<"\n"<<"volumen: ";
        std::cin>>volumen;
        std::cout<<"\n";
        float summe = (volumen * 3) / grundflaeche;
        std::cout<<"Hoehe: "<<summe;
        return summe;
    }
    

    Außerdem ignorierst du Rückgabewerte. Gewöhn dir das gar nicht erst an 🙂


Log in to reply