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
-
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

-
Kleine Hilfestellung fürs Lernen - C++ Referenzen:
http://www.cplusplus.com/reference/
http://www.cppreference.com/wiki/Grüssli
-
-
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.