Verwirrung in Programiersprachen!Wer schaft mir Klartext?



  • Hallo Forum

    Ich habe ein paar grundsätzliche Fragen die noch Verwirrung in mir hegen.
    Unzwar habe ich zuletzt in der Schule mit Borland C++ Objektorientiert kleinere Programme wie z.b. eine art Taschenrechner etc. programiert.
    Im Studium werde ich Visual C++ erlernen müssen und dachte mir ich arbeite schon mal ein bisschen vor und fuchs mich da mal rein.
    Also habe ich mir Visual C++ 2008 zugelegt und stelle fest dass einige Befehle die ich damals noch so aus der Schule kenne nicht übereinstimmen. Z.b. um Zahlen in Text (mal als Beispiel)zu wandeln haben wir folgendes benutzt:

    Zahl1= StrToInt(Edit1->Text);
    

    Nach ein paar Stunden im Internet habe ich dann die Lösung gefunden dass ich
    das jetzt z.b mit ´

    Convert::toString
    

    oder byte je nachdem was man brauch machen muss.

    Worin liegt der Unterschied? Sind es 2 Verschiedene Programierprachen? Und wenn ja wie heißen diese? Ach ja und ich habe hier im Forum mal was gelesen das einer "managed" Coded. Was bedeutet dass?

    Danke im Voraus



  • ^^ du könntest 'sprintf' nehmen. das sollte bei beiden gehen.
    🙂



  • Das kommt davon wenn man einfach mal wild was einhackt ohne zu Verstehen was man da eigentlich macht.

    Das beides sind einfach nur zusätzliche Funktionen die die beiden jeweils mitbringen und diese sind nunmal nicht kompatibel zueinander, d.h. weil du vorher genau für eine Bibliothek programmiert hast und jetzt wechseln willst kannst du nochmal von vorne anfangen.
    Dafür lernst du jetzt aber schlau zu sein und lieber eine Bibliothek zu verwenden die standardisiert ist.

    Also kauf dir ein scheiß Buch und lerne C++ und dessen Standardbibliothek, dann verstehst du auch nachher im Studium was ihr da in Visual C++ einhakt.



  • an fricky:
    ja das wäre gut möglich.

    Aber meine Frage war eigentlich eine andere. Borland C++ und VisualC++ sind doch nur andere Entwicklungsumgebungen, oder? Dann sollte er doch alle Befehle auch in dem anderen Entwicklungsprogramm kennen. Da er das nicht kann, gehe ich davon aus das sich beide Programiersprachen doch noch irgendwie unterscheiden.Jetzt ist meine Frage wie die Programiersprache von Borland C++ heißt und wie die von Microft Visual C++ heißt. Beide sind ja auch auch Objektorientiert...ich blicke da noch nicht so ganz durch.



  • um mal ein bisschen netter als meine vorredner zu sein: es gibt keine direkte funktion um einen zahl in einen string umzuwandeln. wenn du so etwas machen willst, solltest du einen stringstream benutzen.
    das geht so:

    std::string ausgabe;
    std::stringstream str;
    double zahl=12.4.
    str << zahl;
    ausgabe=str.str();
    

    str() gibt einen string aus, den du dann ganz normal verwenden kannst.

    stringstream sollte sich in dem header <sstream> befinden.



  • ah ok dankesehr!
    auch gut zu wissen dass die Programme jeweils eigene Bibhiotheken mitbringen, dann hab ich es jetzt auch verstanden. Für mein nächstes Programm werde ich dann den Stringstream benutzen 🙂



  • Die Empfehlung des StringStreams geht aber ein wenig am Ziel vorbei solange nicht bekannt ist was das Ziel genau ist.

    Die Convert Klasse könnte z.B. zum .Net Framework gehören und ohne sonderliches hin und her wird man damit nicht glücklich und die Aussage

    str() gibt einen string aus, den du dann ganz normal verwenden kannst.

    somit nicht richtig.

    Der Empfehlung

    Also kauf dir ein scheiß Buch und lerne C++ und dessen Standardbibliothek, dann verstehst du auch nachher im Studium was ihr da in Visual C++ einhakt.

    möchte ich hier zustimmen. Es sollte jedoch ein gutes C++ Buch sein.

    Danach gehören auch solche Vermutungen:

    Dann sollte er doch alle Befehle auch in dem anderen Entwicklungsprogramm kennen

    der Vergangenheit an.



  • er frug nach c++ und nicht nach c++/.net, daher ist der hinweis auf .net eigentlich hinfällig. wenn man c++ programmieren will und sich nicht an irgendeine plattform, völlig egal ob borland, vc++, vc.net, qt, glib oder sonst etwas binden will, ist der stringstream im moment der einzig gangbare weg. (übrigens in stringstream wird alles klein geschrieben.)



  • ghorst schrieb:

    er frug nach c++

    wenn man c++ programmieren will und sich nicht an irgendeine plattform, völlig egal ob borland, vc++, vc.net, qt, glib oder sonst etwas binden will, ist der stringstream im moment der einzig gangbare weg

    Das ist Blödsinn. Selbst im reinen C oder C++ gibt es mehrere Wege.
    http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=IntToString#Answ

    Darüberhinaus kann die Plattform auch mit etwas arbeiten, das Du nicht durch stringstream werfen kannst.

    Nein, hat er nicht. Übrigens heißt es C++/CLI oder managed C++ nicht C++/.Net



  • mir ist offen gestanden völlig egal, wie die ms-.net-variante von c++ heißt. ein IntToString gibt es in der stl und der string-lib nicht. mehr varianten bietet c++ nicht. alles andere ist plattform abhängig.

    IntToString ist in einer zusätzlichen lib implementiert. wenn man die einbinden will, so soll man das tun. aber das hat nichts mehr mit dem standard zu tun. wenn es um die funktionalität ginge, würde ich sofort jedem Qt empfehlen...



  • Hier wurde auch nicht nach dem Standard gefragt. Daher kann stringstream eine mögliche Lösung sein, genauso gut kann es aber eine unmögliche Lösung sein. Erst recht es es aber nicht

    der einzig gangbare weg

    Das Dir das völlig egal ist hat man an Deinen Posts schon gesehen.



  • Das ist ein interessanter Thread, der die Problematik der aktuellen Programmierung deutlich aufzeigt. Praktisches Wissen aus einem Feld wird durch die zu hohe Vielfalt ausgebremst. Das Resultat ist tiefe Verunsicherung über den allgemein richtigen Weg.



  • @Knuddlbaer er frug nach c++ und das hat nunmal einen standard. alles andere ist umgebungsabhängig und daher für anfänger nicht sinnvoll. wie ich schon schrieb: ich empfehle jedem qt, wenn er verstanden hat, worum es geht.

    ich schreibe hier bewußt aber nur c++03, da es das einzige ist, worauf man sich verlassen kann und gerade, wenn jemand da steht und feststellt, dass die umgebungen unterschiede aufweisen, muss man ihn auf den einzig, allgemein akzeptierten nenner bringen. tolle tricks kann ich dir in quasi jeder umgebung zeigen, nur sie nützen schlicht gar nichts, wenn man sich nicht an diese umgebung binden will.
    daher lernt richtig c++ inklusive stl und dem rest der standard library. alles andere ändert sich in ein paar jahren.



  • da zeigt sich mal wieder, was fürn murks c++ ist :p



  • C++ ist elegant und wird wie ein Chamäleon alles andere überdauern. In der µP-Programmierung kommt die Zeit von C++ erst noch. 😉



  • ghorst schrieb:

    es gibt keine direkte funktion um einen zahl in einen string umzuwandeln.

    die gibt es sehr wohl. sogar mehr als eine. siehe z.b. mein erstes posting.

    Erhard Henkes schrieb:

    In der µP-Programmierung kommt die Zeit von C++ erst noch

    kann ich nicht bestätigen. das einzige was ich in der hinsicht bisher gesehen habe, waren ziemlich missglückte versuche. was ist eigentlich aus deinen C++ experimenten auf dem AVR geworden?
    🙂



  • was ist eigentlich aus deinen C++ experimenten auf dem AVR geworden?

    Beim ATmega128 habe ich es IMHO erfolgreich realisiert:
    http://www.henkessoft.de/Roboter/Nibo.htm
    suche dort bitte nach "C++-Programmierung des Nibo" (state pattern design in C++)
    http://www.henkessoft.de/Roboter/Nibo.htm#mozTocId872713
    Man benötigt eben genügend RAM (dort 4KByte). Das wird die Zeit bringen.
    Allerdings pure virtual und new/delete müssen noch "umgebogen" werden.



  • @fricky sprintf ist keine option, sondern eine krankheit. mit viele liebe würde ich noch snprintf akzeptieren. aber auch da stellt sich mir die frage, warum hässlich, wenn man es auch einfach haben kann?



  • ghorst schrieb:

    @fricky sprintf ist keine option, sondern eine krankheit. mit viele liebe würde ich noch snprintf akzeptieren. aber auch da stellt sich mir die frage, warum hässlich, wenn man es auch einfach haben kann?

    ghorst schrieb:

    std::string ausgabe;
    std::stringstream str;
    double zahl=12.4.
    str << zahl;
    ausgabe=str.str();
    

    das soll einfach sein? nein, das ist hässlich.
    🙂



  • es gibt keine direkte funktion um einen zahl in einen string umzuwandeln.

    Dann schreibt man sich eben selbst eine ..



  • ^^das habe ich schon einfacher gesehen.
    🙂


Anmelden zum Antworten