Fehlender Typspezifizierer - Anfänger braucht Hilfe bei Fehlermeldung....



  • Hallo

    Beim Kompilieren bekomme ich immer folgenden Fehler:

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

    Kann mir jemand sagen wo mein Fehler liegt? Ich weiß echt nicht weiter....

    MFg Physikus

    #include "rationalnumbers.h"
    
    main () {
    
    	// Begruessung des Benutzers 
    	cout << "Programm zur Demonstration von Operationen mit Rationalen Zahlen" << endl;
    	cout << "Version 1.0" << endl << endl;
    	cout << "Die Eingabe von \"0 0\" beendet das Programm" << endl;
    
    	// Endlosschleife: Programm wird per "0 0" beendet
    	do {
    		// try Block fängt alle numerischen Exceptions ab
    		try {
    			// Variablen rationaler Zahlen zur Durchführung beispielhafter Berechnungen
    			rational r1;
    			rational r2;
    			rational r3;
    
    			// Eingabe der ersten rationalen Zahl
    			cout << endl << "Erste  rationale Zahl eingeben (r bzw. n/z): ";
    			cin >> r1;
    			cout << endl << "Zweite rationale Zahl eingeben (r bzw. n/z): ";
    			cin >> r2;
    
    			if (r1 == 0 && r2 == 0) break; //exit(0);
    
    			// Addition
    			r3 = r1 + r2;
    			cout << endl << "Addition      : " << r1 << " + " << r2 << " = ";
    			cout << r3 << endl;
    
    			// Subtraktion
    			r3 = r1 - r2;
    			cout << endl << "Subtraktion   : " << r1 << " - " << r2 << " = ";
    			cout << r3 << endl;
    
    			// Multiplikation
    			r3 = r1 * r2;
    			cout << endl << "Multiplikation: " << r1 << " * " << r2 << " = ";
    			cout << r3 << endl;
    
    			// Division
    			r3 = r1 / r2;
    			cout << endl << "Division      : " << r1 << " / " << r2 << " = ";
    			cout << r3 << endl;
    
    			cout << endl;
    		} catch (divisionByZeroError) {
    			// Die Fehlerbehandlung ist hier noch rudimentaer; wird in naechsten Versionen verbessert!
    			cerr << endl << "Fehler: Divsion durch Null!" << endl << endl;
    		} catch (notArationalNumberError) {
    			// Die Fehlerbehandlung ist hier noch rudimentaer; wird in naechsten Versionen verbessert!
    			cerr << endl << "Fehler: Keine gueltige rationale Zahl!" << endl << endl;
    		}
    	} while (true); 
    
    	return 0;
    }
    


  • Hallo,

    Es fehlt der Rückgabetyp deiner main-Funktion. das sollte so aussehen.
    int main()



  • rational r1;
    rational r2;
    rational r3;

    ist rational eine eigene klasse?
    in welcher Zeile tritt der Fehler den auf?



  • Sorry da war mein obriger post echt blöd.
    *schäm schäm*



  • Braunstein schrieb:

    Hallo,

    Es fehlt der Rückgabetyp deiner main-Funktion. das sollte so aussehen.
    int main()

    Ja, richtig. Soweit hab ich mir das auch gedacht.
    Aber wenn ich das int einfüge, und dann kompiliere passiert überhaupt nichts, auser folgender Anzeige.

    1>------ Erstellen gestartet: Projekt: Rational, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>rationalnumbers.cpp
    1>Verknüpfen...
    1>Das Manifest wird eingebettet...
    1>Das Buildprotokoll wurde unter "file://e:\Studium\2. Semester\GIT II\Eigene Software\Rational\Rational\Debug\BuildLog.htm" gespeichert.
    1>Rational - 0 Fehler, 0 Warnung(en)
    ========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========

    Es öffnet sich aber kein Fenster oder ähnliches



  • Dann lies dir bitte mal diesen Beitrag aus der FAQ des Konsolenforums durch.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html



  • Physikus schrieb:

    Aber wenn ich das int einfüge, und dann kompiliere passiert überhaupt nichts, auser folgender Anzeige.

    Na dann solltest du dein Programm vielleicht mal starten.



  • Das natürlich auch. Daran hatte ich gar nicht gedacht. 😉



  • Juhu... habs geschafft...
    Danke für eure hilfe.

    Ich hatte das Projekt als Form Anwendung angelegt und nicht als Konsolenanwendung.

    Nochmal vielen Dank.

    Das Forum hier ist echt spitze.....



  • Hallo nochmal

    ...bin jetzt dran aus einem Buch von Reß ein Beispiel zu implementieren.
    Dabei bekomme ich allerdings jetzt auch wieder einen Fehler:

    e:\studium\2. semester\git ii\eigene software\reß string\reß string\string.cpp(27) : fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?

    und das bei folgendem code

    #include "String.h"
    
    // Length liefert die Länge des Textes
    
    int String::Length()
    {
    	return size;
    }
    
    // liefert in str den String
    void String::GetText (char *str)
    {
    	for (int i=0;int<size;i++) str[i]=text[i];
    	str[i]='\0'
    }
    
    	String::String()
    
    	{
    		text=NULL;
    		size=0;
    	}
    

    wenn ich stdafx.h hinzufüge bekomme ich einen ganzen haufen weitere Fehlermeldungen



  • hi,

    e:\studium\2. semester\git ii\eigene software\reß string\reß
    string\string.cpp(27) : fatal error C1010: Unerwartetes Dateiende während
    der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?

    "Unerwartetes Dateiende..." weist doch stark darauf hin, dass irgendwo in deinem Programm (alle Header, main.cpp) eine schliessende klammer } vergessen worden ist.
    Falls du mit MSVC programmierst, geh in irgend eine Headerdatei von der du vermutest, dass sie der Übeltäter ist, lösche dort eine öffnende { und schreibe sofort wieder eine neue { hin. So, diese { müsste nun fett dargestellt sein. Scrolle nun nach unten und suche den Partner der fett dargestellten Klammer: Der Partner ist eine schließende Klammer, die ebenfalls fett dargestellt ist. Irgend wann gibst du eine fett dargestellte { ein, die keinen Partner hat und so hast du den Fehler gefunden. (es gibt bessere ide editoren, die dir selektierte { zusammen mit ihrem Partner } sofort hell leuchtend darstellen.)

    Tip: falls dich stdafx.h zu sehr verwirrt, gehe in die Projektoptionen unter Compiler und schalte die Verwirrung stiftende Option "vorcompilierte Headerdatei verwenden" einfach aus.

    vg. tesu



  • tesuji schrieb:

    "Unerwartetes Dateiende..." weist doch stark darauf hin, dass irgendwo in deinem Programm (alle Header, main.cpp) eine schliessende klammer } vergessen worden ist.

    Nein. C1010 bedeutet immer, dass die Includedirektive für die PCH fehlt. Das wurde hier aber schon hundertfach durchgekaut.

    @Physikus:
    Includedirektive hinzufügen oder Verwendung von PCH abschalten. Wenn ersteres Fehler verursacht, dann zeig bitte, welche das sind.


Anmelden zum Antworten