Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Compiler Error C2144

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
08.01.2003, 11:03 Uhr
~Zanetti
Gast


Hallo Ihr Lieben !!!

Beim Kompilieren meines Codes erzeugt der VC++ - Compiler die Fehlermeldung
--> error C2144: Syntaxfehler : Fehlendes ')' vor Typ 'unsigned short' <--

Meinen Quelltext habe ich auf fehlende ' ) ' - Klammerungen überprüft, sowie auch auf fehlende ' ; ' und ' } '. Leider kann ich einfach keinen Fehler entdecken. Diese Fehlermeldung ist mir früher bereits begegnet, aber leider ist meine Fehlersuche erfolglos ausgegangen.
Hatte vielleicht jemand schonmal das selbe Probleme und kann mir diesbezüglich weiterhelfen ? Würde mich über Unterstützung freuen !

Danke im Voraus !!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.01.2003, 12:43 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Poste mal ein bißchen Quelltext so ein paar Zeilen vor und nach dem Fehler. Nur anhand der Fehlermeldung läßt sich nicht allzu viel aussagen ;-)
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.01.2003, 13:12 Uhr
void*
Generic Pointer
(Operator)


Mal ins blaue Geraten:

1. C:
Du hast eine struct Variable definiert, aber struct nicht geschrieben, sondern nur den Namen.

2. C/C++ fehlt vielleicht ein Header mit Typdeklaration?
--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.01.2003, 09:43 Uhr
~Zanetti
Gast


OK, sorry. Werde ein wenig Text einfügen. Vielen Dank aber schonmal für Eure Bemühungen !!!


C++:
int main ()
{
    BMI Inst;

    Inst.Eingabe();
-->    Inst.Berechnung(unsigned short int Weight, unsigned short int Size);
    Inst.Auswertung(unsigned short int f, char s);
    Inst.Ausgabe(unsigned short int Code);

    return 0;
}



In der mit dem Pfeil gekennzeichneten Pfeil bemängelt der Compiler folgenden Fehler: error C2144: Syntaxfehler : Fehlendes ')' vor Typ 'unsigned short'

Die Funktion Berechnung sieht folgendermaßen aus:


C++:
unsigned short int BMI::Berechnung(unsigned short int Weight, unsigned short int Size)
{
    Size /= 100;
    Faktor = Weight / ( Size * Size );

    return Faktor;
}



Danke, ciao

Zanetti

Edit: Code-Tags eingefügt

Dieser Post wurde am 09.01.2003 um 09:47 Uhr von void* editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.01.2003, 09:46 Uhr
void*
Generic Pointer
(Operator)


Hallo Zanetti!

Du musst für die Parameter Werte oder Variablen einsetzen. Das muss irgendwie so aussehen:

C++:
int main ()
{
    BMI Inst;

    Inst.Eingabe();
    Inst.Berechnung(14, 6);
    Inst.Auswertung(69, 'v');
    Inst.Ausgabe(0);

    return 0;
}


--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.01.2003, 12:30 Uhr
~Zanetti
Gast


Vielen lieben Dank, void* !!!
Damit hast Du in's schwarze getroffen. Jetzt läuft das Progrämmchen.

Allerdings hatte ich es ursprünglich ein bisschen anders gedacht, denn ich wollte keine Werte "vorgeben", sondern sie über eine Funktion vom Benutzer abfragen lassen. Anscheinend habe ich da irgendwas mit der Parameterübergabe falsch gemacht. Werde mich selbst nochmal daran versuchen. Sollte ich keinen Erfolg haben, darf ich dann hier den gesamten Code (es handelt sich hierbei aber um ein kleines Programm) hineinstellen ?

Alles Gute und danke nochmal !!

Zanetti
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.01.2003, 12:47 Uhr
void*
Generic Pointer
(Operator)


Hallo!

1. Da Du die Werte vom Benutzer abfragst (wahrscheinlich in Eingabe), sind die dann wohl als Member in der Klasse gespeichert, dann könnte es so sein, dass alle Fkt. eine leere Parameterliste brauchen:


C++:
int main ()
{
    BMI Inst;

    Inst.Eingabe();
    Inst.Berechnung();
    Inst.Auswertung();
    Inst.Ausgabe();

    return 0;
}



2. Natürlich kannst Du den ganzen Code posten falls es nicht extrem viel ist!
--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.01.2003, 16:44 Uhr
~Zanetti
Gast


OK, hier ist der gesamte Auszug meines Quelltextes, aber bitte nicht lachen ; )
Sollte einfach zur Übung sein, im Grunde genommen ja low-level, aber selbst das reichte bereits aus, um an meine Grenzen zu stoßen.
Ich denke, beim Lesen wird klar, wie ich es mit der Eingabe und Übergabe der Parameter gemeint habe.


C++:
#include <iostream.h>

class BMI
{
    private:
        unsigned short int Weight, Size, Faktor, Code;
        char Sex;
    public:
        void Eingabe();
        unsigned short int Berechnung(unsigned short int Weight, unsigned short int Size);
        unsigned short int Auswertung(unsigned short int Faktor, char Sex);
        void Ausgabe(unsigned short int Code);
};


void BMI::Eingabe()
{
    cout << "Ihr Gewicht : " << flush;
    cin >> Weight;
    cout << "Ihre Koerpergroesse in cm : " << flush;
    cin >> Size;
    cout << "Ihr Geschlecht ( m oder w ) : " << flush;
    cin >> Sex;
}

unsigned short int BMI::Berechnung(unsigned short int Weight, unsigned short int Size)
{
    Size /= 100;
    Faktor = Weight / ( Size * Size );

    return Faktor;
}

unsigned short int BMI::Auswertung(unsigned short int Faktor, char Sex)
{
    if (Sex == 'm')
    {
        if (Faktor < 20)
        {
            return (Code = 1);
        }
        if (Faktor >= 20 && Faktor <= 25)
        {
            return (Code = 2);
        }
        if (Faktor >25 && Faktor <= 30)
        {
            return (Code = 3);
        }
        else
        {
            return (Code = 4);
        }
    }
    else
    {
        if (Faktor < 19)
        {
            return (Code = 1);
        }
        if (Faktor >= 19 && Faktor <= 24)
        {
            return (Code = 2);
        }
        if (Faktor >24 && Faktor <= 30)
        {
            return (Code = 3);
        }
        else
        {
            return (Code = 4);
        }    
    }
}

void BMI::Ausgabe (unsigned short int Code)
{
    if (Code == 1)
    {
        cout << "Sie haben Untergewicht !" << endl;
    }
    if (Code == 2)
    {
        cout << "Sie haben Idealgewicht !" << endl;
    }
    if (Code == 3)
    {
        cout << "Sie haben Uebergewicht !" << endl;
    }
    else
    {
        cout << "Sie haben behandlungsbeduerftiges Uebergewicht !" << endl;
    }
}

int main()
{
    BMI Inst;

    Inst.Eingabe();
    Inst.Berechnung(unsigned short int Weight, unsigned short int Size);
    Inst.Auswertung(unsigned short int f, char s);
    Inst.Ausgabe(unsigned short int Code);

    return 0;
}



War das jetzt zu groß ? Ich "hoffe" nicht, aber ich "glaube" schon.

Beste Grüße !!!
Zanetti

Dieser Post wurde am 09.01.2003 um 21:26 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
09.01.2003, 21:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo, war nicht zu groß

ich würde es folgendermaßen machen:


C++:
#include <iostream.h>

class BMI
{
    private:
        unsigned short int Weight, Size, Faktor, Code;
        char Sex;
    public:
        void Eingabe();
[b]    void Berechnung();
        void  Auswertung();
        void Ausgabe();[/b]
};


void BMI::Eingabe()
{
    cout << "Ihr Gewicht : " << flush;
    cin >> Weight;
    cout << "Ihre Koerpergroesse in cm : " << flush;
    cin >> Size;
    cout << "Ihr Geschlecht ( m oder w ) : " << flush;
    cin >> Sex;
}

[b]unsigned short int BMI::Berechnung()[/b]
{
    Size /= 100;
    Faktor = Weight / ( Size * Size );
}

[b]void BMI::Auswertung()[/b]
{
    if (Sex == 'm')
    {
        if (Faktor < 20)
        {
            Code = 1;
        }
        if (Faktor >= 20 && Faktor <= 25)
        {
            Code = 2;
        }
        if (Faktor >25 && Faktor <= 30)
        {
            Code = 3;
        }
        else
        {
            Code = 4;
        }
    }
    else
    {
        if (Faktor < 19)
        {
            Code = 1;
        }
        if (Faktor >= 19 && Faktor <= 24)
        {
            Code = 2;
        }
        if (Faktor >24 && Faktor <= 30)
        {
            Code = 3;
        }
        else
        {
            Code = 4;
        }    
    }
}

[b]void BMI::Ausgabe ()[/b]
{
    if (Code == 1)
    {
        cout << "Sie haben Untergewicht !" << endl;
    }
    if (Code == 2)
    {
        cout << "Sie haben Idealgewicht !" << endl;
    }
    if (Code == 3)
    {
        cout << "Sie haben Uebergewicht !" << endl;
    }
    else
    {
        cout << "Sie haben behandlungsbeduerftiges Uebergewicht !" << endl;
    }
}

int main()
{
    BMI Inst;

    Inst.Eingabe();
[b]Inst.Berechnung();
    Inst.Auswertung();
    Inst.Ausgabe();[/b]

    return 0;
}



Alles was fett ist habe ich geändert.
--
class God : public ChuckNorris { };

Dieser Post wurde am 09.01.2003 um 21:30 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
10.01.2003, 08:49 Uhr
Tommix



Hallo miteinander,
in der Definition muß es void BMI::Berechnung() heißen, aber:

Zitat:

Ihr Gewicht : 55
Ihre Koerpergroesse in cm : 230
Ihr Geschlecht ( m oder w ) : m
Sie haben behandlungsbeduerftiges Uebergewicht !


halte ich für übertrieben .

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: