wieviele zeilen kann getline lesen ?



  • warum verwendest du nicht einfach die "strings" aus der c++ klasse, dann hast du diese probleme mit den "char" nicht mehr.

    nur so nebenbei.

    char ist c
    string ist c++



  • Blacknator schrieb:

    char ist c

    Ehrlich 😮 ? Das musst du mir mal erklären!



  • was soll ich denn da noch erklären? char wird eigentlich nur noch in c verwendet, nicht mehr in c++, oder nicht? Ich lasse mich auch gerne eines besseren belehren wenn du es besser weist...



  • Also char wird auch in C++ noch verwendet, aber es ist sehr selten geworden, dass Zeiger auf char-Arrays als Strings verwendet werden.

    Da ist ein grober Unterschied.

    MfG SideWinder



  • Ob char , const char * oder string, ist eine Frage der Abstraktionsebene.
    Wenn du direkt einen Puffer verwalten musst, und es auf geschwindigkeit
    ankommt ist char * sicher ok, solange du es vernünftig einbettest. (längenprüfung etc.)
    So würde ich z.B. bei einer streambuf klasse einen char
    oder const char* nehmen.

    Für Normale Anwendungen tut es häufig aber string.

    Devil



  • Der Punkt mit der Geschwindigkeit hört sich gut an, sollte ich mal ausprobieren ob das einlesen von Dateien dann schneller geht, könnte ich mir zumindest gut vorstellen.



  • Blacknator schrieb:

    was soll ich denn da noch erklären? char wird eigentlich nur noch in c verwendet, nicht mehr in c++, oder nicht? Ich lasse mich auch gerne eines besseren belehren wenn du es besser weist...

    noob, schon mal daran gedacht das es C++ Programme gibt, die keine STL benutzen sondern nur templates und klassen, da diese Plattformunabhängig sind, während die STL dies nicht ist, sondern es immer nur Ports gibt?



  • Dadrüber noch zu diskutieren würde das Thema sprengen worum es eigentlich geht.



  • nix da schrieb:

    noob, schon mal daran gedacht das es C++ Programme gibt, die keine STL benutzen sondern nur templates und klassen, da diese Plattformunabhängig sind, während die STL dies nicht ist, sondern es immer nur Ports gibt?

    Ist es nicht vielmehr so das die STL zum standard gehört und somit plattformunabhängig ist ?

    Ist int denn portabel oder nicht eher plattformabhängig ?



  • Was ist bitte an std::string nicht plattformunabhängig?

    Es gibt sogut wie gar nichts was man wirklich plattformunabhängig implementieren kann, überall muss man die Implementierung portieren und lässt die Schnittstelle gleich.

    Sowas wie std::string muss man dann nichtmal portieren und dann kreidet man ihm plattformabhängigkeit an, böse :p

    MfG SideWinder



  • @SideWinder
    Ich hoff du kennst diese parameterliste beim GCC:
    -ffreestanding -nostdlib -fno-builtin -fno-rtti -fno-exceptions -ffast-math

    Wenn du Hardcore coding betreibst so wie ich bei uns in der Firma, wirst du um diese Parameter nicht umwegkommen, oder versuch du mal, ein Kassensystem zu coden als OS.

    Dann wirst du sehen, das die STL nichts mehr mit portabel zu tun hat, da es ohne Stdlib nicht mehr geht, genauso wie exceptions und RTTI, der ganze schwachsinn braucht Runtime und die sind bekanntlich NICHT portabel.



  • Hab mich mit dem gcc noch nie sonderlich beschäftigt, benütze ihn nur nebenbei wenn wir unter Unix was programmieren müssen. Aber ich kann mir denken was die Parameter bedeuten.

    Aber die Implementation von std::string des MSVC kann man imho 1:1 hernehmen und im gcc einsetzen, neu compilieren, fertig und schon hat man die Plattform ungewollt mitportiert.

    Wenn ein C++-Programm im Kassensystem läuft kann ich dort auch eine Klasse basteln die mir auf meinen char* aufpasst 😕

    Ich kann mir ja vorstellen, dass ein cout/cin nicht funktioniert, weil die irgendwo in den tiefen Tiefen der STL des MSVCs mit WriteConsole()/ReadConsole() verbunden sind. Aber std::string 😕

    MfG SideWinder



  • SideWinder schrieb:

    Hab mich mit dem gcc noch nie sonderlich beschäftigt, benütze ihn nur nebenbei wenn wir unter Unix was programmieren müssen. Aber ich kann mir denken was die Parameter bedeuten.

    Aber die Implementation von std::string des MSVC kann man imho 1:1 hernehmen und im gcc einsetzen, neu compilieren, fertig und schon hat man die Plattform ungewollt mitportiert.

    Wenn ein C++-Programm im Kassensystem läuft kann ich dort auch eine Klasse basteln die mir auf meinen char* aufpasst 😕

    Ich kann mir ja vorstellen, dass ein cout/cin nicht funktioniert, weil die irgendwo in den tiefen Tiefen der STL des MSVCs mit WriteConsole()/ReadConsole() verbunden sind. Aber std::string 😕

    MfG SideWinder

    Wenn im inneren die stdlib benutzt wird, wirf mal nen Blick auf seine Parameter



  • Ja hallo 😮

    Wenns sein soll kann man basic_string auch ohne interner Verwendung der restlichen Standard-Library ausprogrammieren, aber ich versteh einfach nicht wieso er überhaupt die Standard-Library killt.

    MfG SideWinder



  • weil die stdlib runtime benutzt und man bei einem Kassensystem kein OS hat mit stdruntime. Nach der zeit gewöhnt man sich derbst daran, keine STL mehr zu benutzen bzw. ne eigene STL.



  • nix da schrieb:

    weil die stdlib runtime benutzt und man bei einem Kassensystem kein OS hat mit stdruntime. Nach der zeit gewöhnt man sich derbst daran, keine STL mehr zu benutzen bzw. ne eigene STL.

    Ja obs dann ein eigene string-Klasse ist oder die Standardklasse ist ja im Endeffekt egal.

    Aber es läuft auf eins hinaus: Lieber eine string-Klasse benützen als sich mit char* plagen 🙂

    MfG SideWinder



  • das ist ansichtssache.


Anmelden zum Antworten