Belastbarkeit der String Streams



  • Brauchst du wirklich einen Stream mit dessen bereitgestellten Operationen? Dein Text klingt eher so, als ob ein String besser geeignet wäre...



  • Stringstreams halten 50 Pfund und mehr aus und sind sehr belastbar.

    kängen begränzung

    Aeh? Vielleicht solltest du erst programmieren, wenn du lesen und schreiben kannst.



  • knivil schrieb:

    kängen begränzung

    Aeh? Vielleicht solltest du erst programmieren, wenn du lesen und schreiben kannst.

    jo mei hat er sich halt verschrieben, mr.perfekt 🙄 👎



  • Zitat:

    kängen begränzung

    Aeh? Vielleicht solltest du erst programmieren, wenn du lesen und schreiben kannst.

    Ja ich meinte "längen Begrenzung"^^

    @thema
    Ja gut dann ist ja alles Perfekt 😃 .
    Wenn die bis zu 50 Pfund mitmachen, dan kann ich da
    noch detalierter Arbeiten, dann wird die noch nen bisjen größer^^

    THX Leuts 😉



  • Da mein Beitrag ignoriert wurde, frage ich nochmals, ob ein String nicht reichen würde, um Text zu speichern? Sind gewisse Operationen wie Ein-/Auslesen erforderlich?



  • Nexus schrieb:

    Da mein Beitrag ignoriert wurde, frage ich nochmals, ob ein String nicht reichen würde, um Text zu speichern? Sind gewisse Operationen wie Ein-/Auslesen erforderlich?

    Der String hilft einem ja schon bei kleinsten Aufgaben nicht. Z.B. wenn ich einen int-Wert in einen String hängen will, kann mir die String-Klasse schon nicht helfen. Also, deine Frage ist doch irgendwie falsch.



  • Nexus schrieb:
    Da mein Beitrag ignoriert wurde, frage ich nochmals, ob ein String nicht reichen würde, um Text zu speichern? Sind gewisse Operationen wie Ein-/Auslesen erforderlich?

    Der String hilft einem ja schon bei kleinsten Aufgaben nicht. Z.B. wenn ich einen int-Wert in einen String hängen will, kann mir die String-Klasse schon nicht helfen. Also, deine Frage ist doch irgendwie falsch.

    Da gebe ich Bulli Recht...


  • Administrator

    So ganz verkehrt ist die Aussage von Nexus übrigens nicht. Ein-/Auslesen könnte ich durchaus auch als "Zahlen zu Text umwandlen" verstehen. Wenn keine solche Umwandlungen oder Formatierungen von nöten sind und man nur Text zusammenbauen möchte, dann ist ein std::string deutlich schneller als ein std::stringstream . Wikinger75 hat bisher immer nur von Text geredet, es kam halt nie irgendetwas, dass er Zahlen umwandelt oder etwas formatiert.

    Grüssli



  • Bulli schrieb:

    Der String hilft einem ja schon bei kleinsten Aufgaben nicht. Z.B. wenn ich einen int-Wert in einen String hängen will, kann mir die String-Klasse schon nicht helfen. Also, deine Frage ist doch irgendwie falsch.

    Ich habe in diesem Thread bisher keinen Hinweis darauf gefunden, dass mehr Funktionalität als das reine Speichern von Text benötigt wäre. Und inwiefern soll (m)eine Frage falsch sein?

    Wikinger75 schrieb:

    Da gebe ich Bulli Recht...

    Du musst halt wissen, ob du diese Aufgaben wirklich brauchst. Denn Streams sind massiv und haben auch gewisse Einschränkungen; zum Beispiel können sie nicht kopiert werden und sind langsamer. Sie können Fehlerstati annehmen, die du auch abfragen musst. Grundsätzlich sind Streams und Strings zwei ganz verschiedene Dinge.



  • Nexus schrieb:

    Ich habe in diesem Thread bisher keinen Hinweis darauf gefunden, dass mehr Funktionalität als das reine Speichern von Text benötigt wäre. Und inwiefern soll (m)eine Frage falsch sein?

    Wikinger75 schrieb:

    2.)
    Nimmt er auch Manipulatoren an wie endl?


  • Administrator

    Bulli schrieb:

    Nexus schrieb:

    Ich habe in diesem Thread bisher keinen Hinweis darauf gefunden, dass mehr Funktionalität als das reine Speichern von Text benötigt wäre. Und inwiefern soll (m)eine Frage falsch sein?

    Wikinger75 schrieb:

    2.)
    Nimmt er auch Manipulatoren an wie endl?

    Und was macht std::endl , was man mit einem std::string nicht machen kann? 🙂

    std::string += '\n';
    // Flush unnötig, da automatisch.
    

    Grüssli



  • Dravere schrieb:

    Bulli schrieb:

    Nexus schrieb:

    Ich habe in diesem Thread bisher keinen Hinweis darauf gefunden, dass mehr Funktionalität als das reine Speichern von Text benötigt wäre. Und inwiefern soll (m)eine Frage falsch sein?

    Wikinger75 schrieb:

    2.)
    Nimmt er auch Manipulatoren an wie endl?

    Und was macht std::endl , was man mit einem std::string nicht machen kann? 🙂

    std::string += '\n';
    // Flush unnötig, da automatisch.
    

    Bitte mal seine Frage genau durchlesen! Er hat gefragt, ob man Manipulatoren wie endl benutzen kann. Hat nicht gefragt, ob man nur endl benutzen kann.
    Oder wie willst du z.B. hex, oct, noshowpoint u.a. wie unter http://www.cplusplus.com/reference/iostream/manipulators/ zu sehen, bei string benutzen? 🙄


  • Administrator

    Bulli schrieb:

    Bitte mal seine Frage genau durchlesen! Er hat gefragt, ob man Manipulatoren wie endl benutzen kann. Hat nicht gefragt, ob man nur endl benutzen kann.
    Oder wie willst du z.B. hex, oct, noshowpoint u.a. wie unter http://www.cplusplus.com/reference/iostream/manipulators/ zu sehen, bei string benutzen? 🙄

    Ich weiss nicht, ich finde hex und oct sind keine Manipulatoren wie endl. Es sind Manipulatoren, aber ihr Zweck ist ein ganz anderer als endl . endl wird sehr häufig für den Zweck missbraucht, einfach eine neue Zeile anzufangen. Daher würde es mich nicht erstaunen, wenn er tatsächlich nur endl benutzen will. Gut, dass ist vielleicht ein wenig Interpretation, aber ich finde es klüger, solche Dinge klarzustellen, als sie einfach totzuschweigen.

    Grüssli



  • endl wird sehr häufig für den Zweck missbraucht, einfach eine neue Zeile anzufangen

    Wenn du zwei Sätze hast, die du in zwei Zeilen ausgeben willst, benutzt du ein '\n' im Ersten?! Sorry, falls ich das aus dem Zusammenhang gerissen hab.


  • Administrator

    moagnus schrieb:

    endl wird sehr häufig für den Zweck missbraucht, einfach eine neue Zeile anzufangen

    Wenn du zwei Sätze hast, die du in zwei Zeilen ausgeben willst, benutzt du ein '\n' im Ersten?! Sorry, falls ich das aus dem Zusammenhang gerissen hab.

    Ich versteh die Frage nicht so recht. Meinst du sowas:

    #include <iostream>
    
    int main()
    {
      std::cout << "Dies ist die erste Zeile!" << '\n'
                << "Dies ist die zweite Zeile!" << std::endl;
    
      return 0;
    }
    

    Ja, das mache ich durchaus. Ich mache auch manchmal sowas, kommt immer auf die Stimmung und Situation an 🙂

    #include <iostream>
    
    int main()
    {
      std::cout << "Dies ist die erste Zeile!\n"
                   "Dies ist die zweite Zeile!" << std::endl;
    
      return 0;
    }
    

    Grüssli



  • Ja, die Frage war so gemeint.
    Und auf std::endl verzichtest du aus Performance-Gründen oder warum? Bin mit dem Flushen immer ganz sorglos umgegangen.



  • Bulli schrieb:

    Nexus schrieb:

    Ich habe in diesem Thread bisher keinen Hinweis darauf gefunden, dass mehr Funktionalität als das reine Speichern von Text benötigt wäre. Und inwiefern soll (m)eine Frage falsch sein?

    Wikinger75 schrieb:

    2.)
    Nimmt er auch Manipulatoren an wie endl?

    Wer sagt, dass er wirklich std::endl braucht und ihm nicht ein einfacher Zeilenumbruch '\n' reicht? Es kommt oft vor, dass man als Fragesteller bereits eine konkrete Idee für etwas im Kopf hat, obwohl man es vielleicht anders machen will.


  • Administrator

    moagnus schrieb:

    Ja, die Frage war so gemeint.
    Und auf std::endl verzichtest du aus Performance-Gründen oder warum? Bin mit dem Flushen immer ganz sorglos umgegangen.

    Performance? Ehm, nein, eher nicht. Es ist mehr eine Frage der Funktionalität bei mir. Ein std::endl ist nunmal nicht dazu gedacht, nur eine neue Zeile zu beginnen. Man kann sich natürlich darüber streiten. Ich habe es nie nachgemessen, nehme aber nicht an, dass es einen wirklich messbaren Performanceunterschied macht.

    Ich wollte in meinem ursprünglichem Post ja nur darauf hinaus, dass man den Manipulator std::endl meistens nur dazu verwendet, um eine neue Zeile zu beginnen. Also Wikinger75 womöglich jeweils nur neue Zeilen beginnen möchte und nicht wirklich Manipulatoren benötigt.

    Grüssli



  • Dravere schrieb:

    Es ist mehr eine Frage der Funktionalität bei mir. Ein std::endl ist nunmal nicht dazu gedacht, nur eine neue Zeile zu beginnen.

    👍



  • endl wird sehr häufig für den Zweck missbraucht, einfach eine neue Zeile anzufangen.

    Das klang nur so, als ob es irgendwelche Probleme mit sich bringen würde.


Anmelden zum Antworten