geht ja schon gut los...(CHAR_MIN) - Fehler



  • Kurz vorstellen, da neu hier: Hatte mal vor 10 Jahren ersten Kontakt mir C++. Jetzt 2. Anlauf mit Cygwin und Ultraedit auf WinXP.

    Gleich zu Beginn meiner ersten Übungen aus einem Video-Tutorial ein Fehler:

    #include <iostream>
    int main()
    {
     std::cout << "Der Wertebereich eines char umfasst " << CHAR_MIN << " - " << CHAR_MAX << "/n";
    }
    

    Als Fehlermeldung bekomme ich mitgeteilt, dass CHAR_MIN und CHAR_MAX "was not declared in this scope"

    Im schönen Video laufen diese wenigen Zeile beim Compilieren ohne Fehler durch.

    Kann den Fehlerteufel nicht finden.

    Help 😞

    truecolor



  • Hi,

    bei mir funktioniert dein Code normal.

    Füg mal #include <limits.h> ein. Vielleicht klappt es dann.

    LG aimheld



  • Hallo aimheld,

    das hat geholfen, vielen Dank. 👍

    Wenn´s Dir nix ausmacht erkläre mir mal bitte, warum ich jetzt diese Zeile benötige (...und Du -bzw. die im Video- nicht).

    😕



  • Ich hab keine Ahnung 😃 Würde mich auch mal interessieren.
    Habe den Befehl nur im zusammenhang mit limits.h bei google gefunden.



  • Haben sie im Video den selben Compiler?



  • truecolor schrieb:

    Kurz vorstellen, da neu hier: Hatte mal vor 10 Jahren ersten Kontakt mir C++. Jetzt 2. Anlauf mit Cygwin und Ultraedit auf WinXP.

    Gleich zu Beginn meiner ersten Übungen aus einem Video-Tutorial ein Fehler:

    #include <iostream>
    int main()
    {
     std::cout << "Der Wertebereich eines char umfasst " << CHAR_MIN << " - " << CHAR_MAX << "/n";
    }
    

    Als Fehlermeldung bekomme ich mitgeteilt, dass CHAR_MIN und CHAR_MAX "was not declared in this scope"

    Im schönen Video laufen diese wenigen Zeile beim Compilieren ohne Fehler durch.

    Scheint ein schlechtes "Video Tutorial" zu sein. Das überrascht auch nicht. Das, was man im Netz zu C++ an freien Tutorials findet, stammt meist selbst von Lernenden mit Halbwissen. Ich würde Dir raten, eines der empfohlenen Bücher zu besorgen und die Infos aus erster Quelle zu beziehen.

    CHAR_MIN und CHAR_MAX sind Makros aus dem <limits.h> bzw. <climits> Header. Wenn man den nicht einbindet, weiß der Compiler auch nicht, was CHAR_MIN und CHAR_MAX sein soll.

    Dass es bei dem Autor ohne Einbinden von limits.h bzw climits funktioniert, heißt nicht, dass es überall so funktionieren muss. Anscheinend wird bei ihm der Header indirekt (über iostreams) eingebunden. Das ist allerdings nicht garantiert.

    Gruß,
    SP



  • @Icematix

    habe mir nach Video-Anleitung von Cygwin.com alle Pakete runtergeladen, da ich
    nicht wusste, welches Paket ich benötigen werde. Insofern Kompatibel zu dem
    Video. Zu Beginn benutzte ich sogar dort den Xemacs-Editor.

    @sebastian
    Tja, mittlerweile formt sich bei mir die Meinung, dass in diesem Bereich hinter
    allem, was Geld kostet, auch Qualität zu finden ist. Das Tutorial stammt von
    Video2Brain - Jetzt lerne ich C++ aus 2005 und hat mich, da gebraucht gekauft,
    zum Glück nicht ZU viel gekostet.

    Dass es bei dem Autor ohne einbinden von limits.h bzw climits
    funktioniert, heißt nicht, dass es überall so funktionieren muss. Anscheinend
    wird bei ihm der Header indirekt (über iostreams) eingebunden. Das ist
    allerdings nicht garantiert.

    Sowas in dieser Richtung ist zu vermuten. Schweinerei ! 🙄

    Also werde ich das Material mal weiter durcharbeiten in der Hoffnung, dass
    nicht all zu viele Kurrositäten auftauschen.

    Danke an alle - tolles Forum, hier bleib´ ich 😃


  • Administrator

    Kleine Hilfestellung fürs Lernen - C++ Referenzen:
    http://www.cplusplus.com/reference/
    http://www.cppreference.com/wiki/

    Grüssli



  • @Dravere

    ...das wird ja ein lese- und probierreiches WE.

    Vielen Dank für die Unterstützung. 👍



  • truecolor schrieb:

    Kurz vorstellen, da neu hier: Hatte mal vor 10 Jahren ersten Kontakt mir C++. Jetzt 2. Anlauf mit Cygwin und Ultraedit auf WinXP.

    Hallo truecolor,

    Ja dann ein herzliches Willkommen im C++-Forum.

    truecolor schrieb:

    Gleich zu Beginn meiner ersten Übungen aus einem Video-Tutorial ein Fehler:

    #include <iostream>
    int main()
    {
     std::cout << "Der Wertebereich eines char umfasst " << CHAR_MIN << " - " << CHAR_MAX << "/n";
    }
    

    Als Fehlermeldung bekomme ich mitgeteilt, dass CHAR_MIN und CHAR_MAX "was not declared in this scope"

    Diese Aufgabe spricht eher dafür, dass es sich bei besagtem Tutorial um mindere Qualität handelt. Der C++-Way of Code sähe meines Erachtens so aus:

    #include <iostream>
    #include <limits> // std::numeric_limits<>
    
    int main()
    {
        std::cout << "Der Wertebereich eines char umfasst " << int(std::numeric_limits< char >::min())
            << " - " << int(std::numeric_limits< char >::max()) << std::endl;
    }
    


  • Hallo Werner,

    was soll ich noch schreiben ... ich bin am WE ohnehin am PC und werde mal das
    Tutorial mit all seinen Merkwürdigkeiten durcharbeiten, nehm aber nicht mehr
    alles, was ich da höre und lese, als letztendliche Weisheit. Eher dann mit einem
    schmunzeln im Gesicht.
    Ich sammle mal alles, was nicht umzusetzen ist. So ein Video-Tutorial kann ja
    immer noch für alle Newbies hier als Mahnmahl und als schlechtes Beispiel dienen.
    😃

    Danke Werner für Deine Ausführungen.


Anmelden zum Antworten