Probleme mit dem buch: Einführung in die Programmierung mit C++



  • Hallo

    Ich bin neu hier und habe mir das Buch : Einführung in die Programmierung mit C++ von Bjarne Stroustrup aus der Bücherei ausgeliehen

    Nachdem ich nun erfolgreich mein erstes Mini Programm Hello world geschrieben habe stecke ich jetzt auf seite 94 fest.

    Von der Website zum buch habe ich mir die header datei std_lib_facilities.h heruntergelade 🙂

    Nun habe ich das Problem, dass das Beispiel aus dem Buch bei mir nicht funktionieren möchte:

    Also das Beispiel ist wie folgt :

    http://imageshack.us/photo/my-images/841/test2bj.jpg/

    doch wenn ich das Programm ausführen will bekomme ich eine fehlermeldung 😞

    http://imageshack.us/f/811/fehler1b.jpg/

    Ich hoffe ihr könnt die bilder sehen und mir damit helfen
    Mit freundlichen Grüßen Raider 🙂



  • Vor int main sollte noch das stehen:

    #include <iostream>
    #include <string>
    using namespace std;
    


  • EOutOfResources schrieb:

    Vor int main sollte noch das stehen:

    #include <iostream>
    #include <string>
    using namespace std;
    

    Nein, das macht std_lib_facilities.h



  • Du kannst dein Programm und die Fehlermeldung auch in Textform hier hinstellen, das macht es leichter zu helfen als wenn wir irgendwelche stark verpixelten JPGs entziffern müssen.

    Was ich erkennen konnte war, daß du bei der Ausgabe "first-name" mit Bindestrich statt Unterstrich geschrieben hast.



  • manni66 schrieb:

    Nein, das macht std_lib_facilities.h

    Sorry, ich kenne den Header eben nicht.



  • Es ist sinnvoller, den Code hier einzustellen, als irgendwo Bilder mit niedriger Auflösung einzustellen. Wenn ich das in dem völlig unscharfen Bild richtig sehe, hat du first_name in der letzten Zeile falsch geschrieben.



  • Mich wundert, dass der Header überhaupt gefunden werden soll, weil die Backslashes nicht maskiert sind. Ersetze mal jedes \ durch \.



  • Michael E. schrieb:

    Mich wundert, dass der Header überhaupt gefunden werden soll, weil die Backslashes nicht maskiert sind. Ersetze mal jedes \ durch \.

    Das ist nicht definiert. Ich erwarte, daß unter Win \ und \\ und / geht. Ich benutze seit Win95 /.



  • ok danke für die schnellen antworten

    hier ist der code in textform (sry wegen der bilder 😞 )

    Beispiel aus dem buch:

    #include "c:\User\N1\Dokumente\Visual Studio 2008\Projekte\std_lib_facilities.h"
    int main()
    {
    cout << "Bitte geben sie ihren Vornamen ein :\n";
    string first_name;
    cin >> first_name;
    cout <<"Hallo" <<first_name<<"!\n";

    Ich bin mir allerding nicht sicher, ob ich die header datei richtig eingebunden habe 😞
    Ausserdem bin ich jede Zeile des codes durchgegangen um herauszufinden wann er nicht mehr ausführbar ist 😃

    Also sobald ich die zeile cin >> first_name; hinzufüge bekomme ich eine Fehlermeldung

    Also ist irgendetwas mit dieser Zeile nicht in Ordnung
    (glaube ich zumindest )

    Mit freundlichen Grüßen
    Raider



  • ich benutze ausserdem Microsoft Visual Studio 2008 Express Edition 🙂



  • Jetzt wäre natürlich die Fehlermeldung in Textform noch recht hilfreich.

    Meine Empfehlung: Pack den Header direkt in den Pfad, in dem auch deine Quelldateien liegen, dann kannst du ihn ohne den absoluten Pfad ansprechen. (alternativ wäre es auch möglich, das Verzeichnis mit solchen Hilfs-Headern in den Include-Pfad des Compilers zu ergänzen)



  • Raider95 schrieb:

    Ich bin mir allerding nicht sicher, ob ich die header datei richtig eingebunden habe 😞

    Wenn keine Fehlermeldung kommt, dass die Datei nicht gefunden wurde, sollte es eigentlich funktionieren.



  • also ne fehlermeldung bekomme ich nicht wenn ich die header datei benutze
    also scheint sie wohl richtig installiert zu sein

    soll ich wirklich die fehlermeldung posten ?

    in nem anderen forum hat mir keiner mehr geantwortet nachdem ich ihnen 2 seiten mir der Fehlermeldung zugebombt habe 😞

    Frage:
    Kann einer von euch den code ausführen ??
    Ich kann auch irgendwo mal std_lib_facilities hochladen damit ihr es selber mal ausprobieren könnt 🙂
    Lg Raider



  • Bin mir nicht sicher ob es mehrere Versionen gibt -> der Header:
    http://www.stroustrup.com/Programming/std_lib_facilities.h

    Der Quelltext:

    #include "std_lib_facilities.h"
    
    int main()
    {
        cout << "Bitte geben sie ihren Vornamen ein :\n";
        string first_name;
        cin >> first_name;
        cout <<"Hallo" <<first_name<<"!\n";
    }
    

    Ist zwar nicht der neueste gcc -> Die Warnung:
    In file included from d:\mingw441\bin\../lib/gcc/mingw32/4.4.1/include/c++/ext/hash_map:59,
    from std_lib_facilities.h:34,
    from bjarne01.cpp:1:
    d:\mingw441\bin\../lib/gcc/mingw32/4.4.1/include/c++/backward/backward_warning.h:28:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.

    Sollte klar sein: Der Header im selben Ordner wie die .cpp Datei.

    MfG f.-th.



  • Ich hoffe ich hab das jetzt richtig verstanden:

    Ich muss std_lib_facilities.h in den selben ordner in dem auch meine c++ datei ist packen ?

    Kann ich dann die header datei auch so angeben wie es stoustrup macht ?

    Also ohne den ganzen Pfad angeben zu müssen ?

    Lg Raider

    P.S: ich kann gerade nicht an den Rechner bei mir zuhause, deswegen frag ich so blöd anstatt es einfach auszuprobieren 🙂



  • Das ist wahrscheinlich die einfachste Lösung mit dem Header.
    Wenn du es drauf hast, sind auch andere Lösungen möglich.

    Das Beispiel scheint nur auf relativ neuen Compilern mit aktueller STL zu funktionieren.

    btw: ich sollte auf mal updaten 😃



  • Ok danke
    ich werde es so schnell wie möglich ausprobieren 🙂

    Noch eine dumme Frage:

    Visual Studio 2008 erstellt mir für jedes neues projekt einen neuen ordner
    Muss ich jetzt bei jedem Projekt, dass ich mache die datei std_lib_facilities.h
    in diesen ordner packen ?



  • [quote="f.-th."]Bin mir nicht sicher ob es mehrere Versionen gibt -> der Header:
    http://www.stroustrup.com/Programming/std_lib_facilities.h

    In diesem Link ist std_lib_facilities.h als code vorhanden

    Ich hingegen habe die datei von der Website ausm buch heruntergeladen. Diese Datei hat aber, egal wie ich sie öffne , nicht den inhalt aus diesem link

    Jetzt meine Frage:
    Wie mach ich den Code aus dem Link zu einer funktionierenden HeaderDatei machen, mit der ich dann arbeiten kann

    (Soweit ich den Code aus dem link verstanden habe geht es da genau um die sachen die mir auch meine Fehlermeldung anzeigt ) 🙂



  • Da sind ja viele Beiträge im Netz zu diesem Beispiel. Du bist also nicht allein.

    Hab kein VS am Start. Eigentlich sollte VS dir eine Möglichkeit zeigen das du die Datei nur einmal auf deinem Rechner benötigst. Theoretisch sollte die Variante:

    #include "c:\User\N1\Dokumente\Visual Studio 2008\Projekte\std_lib_facilities.h"
    

    funktionieren, wenn sich die Datei auf deinem Rechner in dem Ordner befindet.

    Die Datei aus dem Link auf deinen Rechner 🤡
    Abtippen 😃
    Wenn du bequem bist, mit Maus markieren kopieren und unter passendem Namen speichern.

    MfG f.-th.



  • einfach aptippen und als textdatei abspeichern ??


Anmelden zum Antworten