C++ Anfänger Fragen...



  • Hallo,

    ich habe vor einigen Tagen mit C++ Programmierung angefangen. Ich programmiere seit etwa 2 Jahren PHP, zumindest jetzt am Anfang hilft mir die Änhlichkeit schon weiter 🙂
    Als Compiler (nennt man das so?) nutze ich Dev-C++, damit bin ich eigentlich ganz zufrieden. Auch wenn ich das Syntax-Highlighting noch an Dreamweaver anpassen muss 😉
    Aber dennoch habe ich noch so meine Schwierigkeiten, also komme ich gleich zu meinen Fragen...

    Von PHP bin ich es gewohnt, Funktionen in eine eigene Datei zu schreiben. Ich habe also die Datei functions.cpp zum Projekt hinzugefügt und meine bescheidenen Funktionen dort deponiert. Was muss ich jetzt damit machen?
    Ich hab versucht die Datei mittels #include "functions.cpp" zu includen, aber leider kommt hier die Fehlermeldung multiple definition of `print(std::string, int, int)' 😞
    Ich weiß leider nicht mehr weiter...

    Dann hab ich noch in nem Tutorial gelesen dass mit cout << "\f"; an den Seitenafang hüpfen kann, leider funktioniert dies bei mir auch nicht 😞
    Was mache ich falsch?

    Zu guter Letzt hab ich noch eine Frage über Datenbanken. Gibts denn etwas vergleichbares? Ich wollte zur Übung eine Art Telefonbuch-Programm schreiben, aber ich bin daran gescheitert dass ich das ja die Einträge nirgends abspeichern kann!? Wie man die dann aus ner Datei auslesen kann, da hab ich sowieso keinen Schimmer 😉

    Also ich hoffe dass ihr mir diese Fragen beantworten könnt 🙂

    Schonmal vielen Dank!

    Gruß,
    Stoke



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo

    Wenn du C++ ordentlich lernen willst, dann arbeite erstmal ein entsprechendes Tut von vorne an durch. Dort lernst du unter anderem den Gebrauch von Übersetzungseinheiten und Standardgerechten Methoden.

    Datenbanken an sich gibt es in C++ nicht. Als einfachstes speicherst du deine Daten erstmal in einer normalen Texdatei (Siehe FAQ hier im C++ Forum, den Thread Ströme und Dateien), oder du bindest eine externe Lib ein, um auf MySQl oder ähnlich zuzugreifen.

    bis bald
    akari



  • Ich habe alle hier im Forum gelinkten Tutorials teilweise durchgemacht und teilweise überflogen, zu meinen Fragen hab ich aber leider keine Antworten gefunden.

    Würd mich freuen wenn das einfach jemand kurz beantworten könnte, dann kann ich mit meinen Übungen weitermachen 🙂
    Den genannten Thread werd ich mir ansehen, vielen Dank für den Hinweis!

    Gruß,
    Stoke



  • Stoke schrieb:

    Als Compiler (nennt man das so?)

    Ja.

    Stoke schrieb:

    nutze ich Dev-C++

    Dies ist allerdings kein Compiler, sondern eine Entwicklungsumgebung ( ➡ IDE). Der darin enthaltene Compiler ist ein Windows Port vom GCC und nennt sich MinGW. Der Compiler ist, in Zusammenarbeit mit dem Linker, letztendlich dafür verantwortlich, um aus deinen Quellcodedateien Executables zu erstellen. Die IDE ist eher das Werkzeug, um deinen Quellcode zu schreiben, Projekte zu verwalten, etc.pp.

    Stoke schrieb:

    Von PHP bin ich es gewohnt, Funktionen in eine eigene Datei zu schreiben. Ich habe also die Datei functions.cpp zum Projekt hinzugefügt und meine bescheidenen Funktionen dort deponiert. Was muss ich jetzt damit machen?
    Ich hab versucht die Datei mittels #include "functions.cpp" zu includen, aber leider kommt hier die Fehlermeldung multiple definition of `print(std::string, int, int)' 😞

    Kurzer Merksatz: inkludiere .cpp's niemals nie! Diese Dateien werden alle (ausser sie sind explizit deaktiviert) vom Compiler einzeln kompiliert, und dann vom Linker zu einem Ganzen zusammengefügt. Wenn du also eine .cpp A in einer anderen .cpp B inkludierst, dann wird beim Kompilieren von B sowohl der Inhalt von A (#include ist nun mal nicht viel mehr als simples Copy&Paste) als auch der Inhalt von B verwendet. Beim Kompilieren von A wird dann nochmals der Inhalt von A verwendet. Das ist natürlich nicht gut, und es kommt zur besagten "multiple definition" Fehlermeldung, weil plötzlich einige Symbole doppelt vorhanden sind, und das ein Verstoss gegen ODR darstellt. Das mag C++ überhaupt nicht.

    Stoke schrieb:

    Dann hab ich noch in nem Tutorial gelesen dass mit cout << "\f"; an den Seitenafang hüpfen kann, leider funktioniert dies bei mir auch nicht 😞
    Was mache ich falsch?

    \f ist die Escape Sequenz für Form Feed. Wie deine Implementation darauf reagiert, kann ich dir nicht sagen. Soweit mir bekannt, legt der Standard hier kein bestimmtes Verhalten fest. Da musst du dich schon mal schlau machen, wie dein Betriebssystem oder deine Implementation das verarbeitet. Zudem ist "leider funktioniert dies bei mir auch nicht" keine ausreichende Fehlerbeschreibung.

    Stoke schrieb:

    Zu guter Letzt hab ich noch eine Frage über Datenbanken. Gibts denn etwas vergleichbares? Ich wollte zur Übung eine Art Telefonbuch-Programm schreiben, aber ich bin daran gescheitert dass ich das ja die Einträge nirgends abspeichern kann!? Wie man die dann aus ner Datei auslesen kann, da hab ich sowieso keinen Schimmer 😉

    C++ ist stark stream-basiert. Und so bietet die STL (Standard Bibliothek von C++) auch für Dateien entsprechende Klassen an. Schau dir dazu am besten mal ein Tutorial an, wie man in Dateien schreibt und aus Dateien liest. Für eine richtige Datenbank musst du auf eine externe Bibliothek zurückgreifen. Vllt. reicht aber auch einfach ein spezielles Dateiformat für deine Anforderungen aus, zB XML. Dafür gibt es dann ebenfalls Bibliotheken, zB tinyxml.



  • Hallo

    genau das ist das Problem : du liest das nur teilweise. Das reicht nicht. Denn dann höättest du in dem von mir verlinkten Tut das Kapitel Übersetzungseinheiten gelesen.

    Desweiteren würdest du dann auch wissen das Standard-C++ nicht einfach so auf dem Bildschirm herumspringen kann, sondern das du dazu Plattformspezifische Funktionen brauchst. Dazu findest du in der Konsolen-FAQ (nicht die C++ FAQ, sondern die des Konsolen-Subforums) einen Thread Improved Console.

    bis bald
    akari



  • ich habe vor einigen Tagen mit C++ Programmierung angefangen. ... Ich wollte zur Übung eine Art Telefonbuch-Programm schreiben, aber ich bin daran gescheitert dass ich das ja die Einträge nirgends abspeichern kann!?

    Du musst Dir bei C++ schon etwas mehr Einarbeitungszeit gönnen, wenn Du etwas halbwegs Ernsthaftes zustande bringen willst.

    Speichern/Laden:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39469.html
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39470.html

    Telefonbuch:
    http://www.volkard.de/vcppkold/projektbeginn_telefonbuchprogramm.html
    http://www.volkard.de/vcppkold/die_klasse_sortedarray.html
    http://www.volkard.de/vcppkold/das_telefonbuchprogramm.html
    http://www.volkard.de/vcppkold/die_klasse_filedictionary.html

    Man kann sagen, dass C++ insgesamt gesehen anfängerunfreundlich ist und wenig Komfort bietet. Dafür ist es eine wirklich mächtige Sprache und liefert schnelle Programme.


Anmelden zum Antworten