fehler mit "int"



  • error C4430:Fehlender Typspezifizierer - int wird angenommen.Hinweis:"default-int" wird von C++ nicht unterstützt.

    _______________________________
    ps: mikey --> haste garnicht

    😋



  • Doch habe ich:

    mikey schrieb:

    Poste einfach mal den Code und die originale Fehlermeldung.

    Und jetzt poste mal etwas mehr Code, denn in der einen Zeile ist kein Fehler zu finden. Du hast anscheinend irgendeiner Variable keinen Datentyp zugewiesen.



  • oder einen Unbekannten.
    Dann ist der nächste Fehler, dass er ein ';' erwartet hätte ...



  • Weitere Spekulationen bringen nichts. Er sollte mal den Code posten, sonst kann er meine Hilfe vergessen.



  • int main()  {
        cout << "Die zahl eingeben:" << endl;
    	double zahl;
    	cin >> zahl;
    
    	while (true)   {
    
        cout << "Die zahl eingeben:" << endl;
    	double zahl;
    	cin >> zahl;
    
    	if(zahl > code)
    		cout <<"Die Zahl ist zu groß" << endl;
    	if(zahl == code)   {
    		cout <<"Glückwunsch! Sie haben die richtige Zahl!" << endl;
    		break;
    	}
    	if(zahl < code)   
    		cout<< "Die Zahl ist zu klein!" << endl;
    }
    

    ____________________________________
    mikey hab nich in diesen sachen hier geguckt... ➡ ⚠



  • Was ist code? Und du hast zahl 2mal inizialisiert und einmal in ner Schleife!



  • " } " fehlt. 🙂



  • ...und die Schleife hat keine Klammer am Ende. Poste bitte den ganzen Code, der Fehler liegt wo anders.

    @kaffee: Es macht nichts, dass er zweimal die selbe Variable angelegt hat. Solange sich die andere nicht im Scope der ersten befindet, gibt es keine Fehlermeldung. Aber ich sehe sowieso irgendwie keinen Sinn darin, erst vor der Schleife eine Zahl eingeben zu lassen, und in der Schleife passiert dann wieder das selbe. Wiegesagt, bitte den ➡ ganzen Code posten 🙂



  • kaffee schrieb:

    Und du hast zahl 2mal inizialisiert und einmal in ner Schleife!

    Na und?

    Auffälliger sind für mich, dass er keine Header eingebunden hat und auch keinen namespace benutzt(oder hast du das einfach nur nicht gepostet?).
    Außerdem sollte eine Warnung ausgegeben werden, dass kein int zurückgegeben wird( dh. return 0; fehlt).

    #include <iostream>
    using namespace std;
    
    int main()  
    {
        cout << "Die zahl eingeben:" << endl;
        double zahl;
    	double code = 10; //Hier muss der gesuchte Code eingetragen werden.
        cin >> zahl;
    
        while (true)   
    	{
    
    		cout << "Die zahl eingeben:" << endl;
    		double zahl;
    		cin >> zahl;
    
    		if(zahl > code)
    			cout <<"Die Zahl ist zu groß" << endl;
    		if(zahl == code)   
    		{
    			cout <<"Glückwunsch! Sie haben die richtige Zahl!" << endl;
    			break;
    		}
    			if(zahl < code)  
    			cout<< "Die Zahl ist zu klein!" << endl;
    	}
    	return 0;
    }
    

    So funktionier das ganze bei mir.



  • so funktioniert das ganze einwandfrei:

    #include <iostream>
    
    using namespace std;
    
        int main()  {
        int code = 111;
        while (true)   {
        cout << "Die zahl eingeben:" << endl;
        double zahl;
        cin >> zahl;
        if(zahl > code)
            cout <<"Die Zahl ist zu groß" << endl;
        if(zahl == code)   {
            cout <<"Glückwunsch! Sie haben die richtige Zahl!" << endl;
            break;
        }
        if(zahl < code)  
            cout<< "Die Zahl ist zu klein!" << endl;
    }
    }
    


  • temporärer-gast schrieb:

    Außerdem sollte eine Warnung ausgegeben werden, dass kein int zurückgegeben wird( dh. return 0; fehlt).

    Falsch. 'return' ist in 'main' optional.



  • #include <iostream>
    
    include "code.cpp"  
    using namespace std;
    
        int main()  {
        cout << "Die zahl eingeben:" << endl;
    	double zahl;
    	cin >> zahl;
    
    	while (true)   {
    
        cout << "Die zahl eingeben:" << endl;
    	double zahl2;
    	cin >> zahl2;
    
    	if(zahl > code)
    		cout <<"Die Zahl ist zu groß" << endl;
    	if(zahl == code)   {
    		cout <<"Glückwunsch! Sie haben die richtige Zahl!" << endl;
    		break;
    	}
    	if(zahl < code)   
    		cout<< "Die Zahl ist zu klein!" << endl;
    }
    return 0;
    }
    

    hab dazu selber fragen da ich einiges kopiert hab.Wozu dient return 0; ? und break ?



  • mit break kann man aus der schleife springen

    und return 0 bedeutet das das laufende programm ohne fehler beendet wird



  • Ist der Fehler weiterhin da?



  • das programm geht nicht,was ist eigentlich aus meiner "int-Frage" geworden ?

    warum soll ich aus der schleife "springen" ?



  • Es geht schon die ganze Zeit um dein Problem. Wenn also der vorher gepostete Code nicht geht, liegt der Fehler in der inkludierten "code.cpp"´Musst mal den Code posten.



  • Summernoon schrieb:

    warum soll ich aus der schleife "springen" ?

    Damit das Programm beendet wird, wenn du nicht aus der Schleife springst, wird immer das von oben wiederholt.



  • danke kaffee.Ich hab jetzt mal deinen code genommen und der geht ja !
    nun war bei mir noch "return 0" ,wofür ist das ? Da ich das noch nicht rect verstanden hab. Zitat:"Das Programm wird ohne Fehler beendet."
    würde ja heißen das nur überall "return 0" drunter schreiben muss^^

    ________________

    ich habe meinen code schon gepostet 😋



  • Hi,

    eigentlich steht das in jedem Anfängerprogrammierbuch (Sprache fast egal 😉 ), aber ich habe gerade Langeweile: Mit "return" springt man aus der aktuellen Funktion heraus und gibt die Ablaufkontrolle wieder an den Aufrufer zurück.
    Man kann damit einen Returnwert, dessen Typ zur Funktionssignatur passen muss:

    int f() {
       return 3;
    }
    
    string g() {
       return string("Simon2");
    }
    
    void h() { // void bedeutet "nichts"
       return;
    }
    
    int main() {
       int i;
       i = f(); // i wird der Wert 3 zugewiesen
       string s;
       s = g(); // s bekommt den Wert "Simon2"
       h(); // kein Returnwert
       return 0; // wegen "int main()"
    }
    

    Der Compiler fordert mindestens ein return am Ende einer Funktion mit folgenden Ausnahmen:
    + "return;" kann für void weggelassen werden
    + Alternative "Rückgabenstatements" werden zugelassen (throw, exit, ...);
    + bei main() darf man es weglassen (es wird standardmäßig mit "return 0" eingesetzt).

    Weitere Besonderheit bei main(): Der Returnwert wird dem Betriebssystem übergeben, das ihn weiterverwenden kann. Nach Konvention (aber IIRC nirgends gefordert) gilt dabei der WErt "0" als "Programm erfolgreich abgearbeitet".

    Hoffe, soweit klar und korrekt.

    Gruß,

    Simon2.



  • also beende ich die Funktion damit und dann kann ich halt danach sowas wie zum beispiel eine eingabe einer zahl oder sowas unterbringen ?

    so ungefähr richtig ?
    danke schon mal im vor.raus

    ____________________
    Ps: Warum wird das wort "vor.raus" zensiert ? (ohne punkt natürlich)


Anmelden zum Antworten