Konfuse Fehlermeldungen bei Visual C++



  • Ich arbeite mit dem buch "Jetzt lerne ich" "C++". Das Programm ist korrekt abgeschrieben aber der Compiler bringt Fehlermeldungen wie: fehlendes ";" vor } oder fehlendes ";" vor main. Des sind völlig blödsinnige Meldungen. Ich versteh des net. Könnt ihr mir helfen? Ím Buch steht des auch net so drin.

    Thx Nightwolf 🕶



  • Bitte Code posten, sonst kann hier keiner etwas sagen.



  • Also der Code:
    // Listing 5.4 - Verwendung mehrerer return-Anweisungen

    #include <iostream.h>

    int Doubler(int AmountToDouble);

    int main()
    {

    int result = 0;
    int input;

    cout << "Zu verdoppelnde Zahl eingeben: ";
    cin << input;

    cout << "\nVor Aufruf von Doubler... ";
    cout << "\nEingabe: << input << " Verdoppelt: << result << "\n";

    result = Doubler(input)

    cout << "\nZurück aus Doubler... \n"
    cout << "\nEingabe: " << input << " Verdoppelt: << result << "\n"

    return 0;

    int Doubler(int original)
    {
    if (original <= 10000)
    return original * 2;
    else
    return -1;
    }

    Und die Fehlermeldung:

    --------Konfiguration: zrt8sd - Win32 Debug--------------------
    Kompilierung läuft...
    zrt8sd.cpp
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(14) : error C2676: Binaerer Operator '<<' : 'class istream_withassign' definiert diesen Operator oder eine Konvertierung in einen fuer den vordefinierten Operator geeigneten
    Typ nicht
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(17) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Verdoppelt'
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(17) : error C2143: Syntaxfehler : Fehlendes ';' vor '<<'
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(21) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'cout'
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'cout'
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2017: Ungueltige ESCAPE-Folge
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2001: Zeilenumbruch innerhalb einer Konstanten
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'n'
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2065: 'n' : nichtdeklarierter Bezeichner
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2143: Syntaxfehler : Fehlendes ';' vor 'string'
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(24) : error C2143: Syntaxfehler : Fehlendes ';' vor 'return'
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(27) : error C2601: 'Doubler' : Lokale Funktionsdefinitionen sind unzulaessig
    c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(33) : fatal error C1004: Unerwartetes Dateiende gefunden
    Fehler beim Ausführen von cl.exe.

    zrt8sd.exe - 13 Fehler, 0 Warnung(en)

    😕 😕 😕
    Keinen blassen Schimmer.



  • Versuch doch mal folgendes:
    1)

    #include <iostream>
    using namespace std;
    

    oder
    2) nimm statt cout und cin std::cout und std::cin

    Teste mal eins von beidem

    ----------------------------------------------------
    Edit:

    Vergiss das - das war nur was für die Zukunft.
    Also erster Fehler:
    cin << input;
    sollte sein cin >> input;
    Dann sollteest du bei deinen cout mal die " überprüfen.
    Als nächstes sollte hinter jeder Anweisung ein ; stehen.
    Und vor das int Doubler am Ende kommt noch ein } als schliessendes Tag für die main.

    Am Ende sollte das ganze so aussehen:

    #include <iostream>
    using namespace std;
    
    int Doubler(int AmountToDouble);
    
    int main()
    {
    
        int result = 0;
        int input;
    
        cout << "Zu verdoppelnde Zahl eingeben: ";
        cin >> input;
    
        cout << "\nVor Aufruf von Doubler... ";
        cout << "\nEingabe:" << input << " Verdoppelt:" << result << "\n";
    
        result = Doubler(input);
    
        cout << "\nZurück aus Doubler... \n";
        cout << "\nEingabe: " << input << " Verdoppelt:" << result << "\n";
    
        return 0;
    }
    
    int Doubler(int original)
    {
        if (original <= 10000)
            return original * 2;
        else
            return -1;
    }
    

    Und da du offenbar MSVC verwendest mach mal Strg + "A" und dann Alt + F8.
    Da solltest du genau sehen wo ; und } fehlen!

    [ Dieser Beitrag wurde am 20.06.2003 um 21:21 Uhr von Drakos editiert. ]



  • und cin >> variable bzw. cout << variable



  • cout << "\nEingabe: << input << " Verdoppelt: << result << "\n";\
    

    Denk an die Anführungszeichen!

    [ Dieser Beitrag wurde am 21.06.2003 um 02:24 Uhr von THE_FreaK editiert. ]



  • Hi

    Ausserdem hast du beim Aufruf von Doubler das semicolon vergessen.



  • So viele Fehler wie ich gemacht hab, kann des **** Programm ja gar net laufen. Danke Leute. Habs jetzt hinbekommen. 🕶 🕶 🕶 😃


Anmelden zum Antworten