Aus Textdatei einzelne Zeichen auslesen



  • SeppJ schrieb:

    Nenn mir eine Sache die FILE* kann, aber fstream nicht.

    Ok, ich war mir nicht mehr bewusst das ich mit dem fstream genauso den Dateizeiger verschieben kann. Manchmal da hab ich das Gefühl das gewisse User hier nur drauf warten das jemand anderes was falsches schreibt um ihm dann ins Gesicht zu springen.

    Aber egal, mit deiner restlichen Ausführung hast du natürlich Recht.



  • SeppJ schrieb:

    Nenn mir eine Sache die FILE* kann, aber fstream nicht.

    popen? fdopen?



  • Na ja, Zeilen ignorieren geht doch wunderbar. stream.ignore(std::numeric_limitsstd::streamsize::max(), '\n'); Vier mal aufrufen und du bist bei der 5. Zeile angelangt.

    filefan schrieb:

    popen? fdopen?

    Nicht im Standard. Und es sind auch keine Manipulationen auf FILE*.



  • cooky451 schrieb:

    filefan schrieb:

    popen? fdopen?

    Nicht im Standard. Und es sind auch keine Manipulationen auf FILE*.

    Im Posix-Standard sind die drin. Und wenn fputs() keine Operation auf FILE* ist, dann ist seekg auch keine Operation auf fstream. Und um den ging es ja.


  • Mod

    filefan schrieb:

    cooky451 schrieb:

    filefan schrieb:

    popen? fdopen?

    Nicht im Standard. Und es sind auch keine Manipulationen auf FILE*.

    Im Posix-Standard sind die drin.

    Und? Der POSIX-Standard ist quasi eine C-Bibliothek. Du sagst also bloß, dass es Bibliotheken für C gibt. Die Standard fstreams und die C-Dateizeiger können vom technischen Standpunkt her beide genau das gleiche machen (was ein Zufall 🙄 ), benutzen sich bloß anders. Wenn du Fremdbibliotheken einbringst, kannst du auch für C++ Fremdbibliotheken einbringen, die dann auch können, was popen und fdopen machen.



  • SeppJ schrieb:

    Nenn mir eine Sache die FILE* kann, aber fstream nicht.

    So richtig schön schnell sein 😉



  • Firefighter schrieb:

    Manchmal da hab ich das Gefühl das gewisse User hier nur drauf warten das jemand anderes was falsches schreibt um ihm dann ins Gesicht zu springen.

    Kommt dir nicht nur so vor, ist so. Das machen sie bei mir dauernd. 🙄



  • hustbaer schrieb:

    SeppJ schrieb:

    Nenn mir eine Sache die FILE* kann, aber fstream nicht.

    So richtig schön schnell sein 😉

    Was ist eigentlich an FILE* so schnell? Kann das irgendwie effizienter binärdaten aus einer Datei lesen?



  • Das Problem ist eher, dass die iostreams langsam sind.
    (Langsamer als nötig)



  • Jetzt hast du die Frage auch nicht beantwortet.
    Geht es da um sowas http://pisa.ucsd.edu/cse125/2006/Papers/High_Performance_Game_Programming_in_C++.pdf (Seite 29)
    Sind solche Vergleiche nicht ziemlich nutzlos, wenn man immer wieder gecachte Daten liest? Selbst bei SSD Platten dürfte doch das wirkliche lesen neuer Daten viel mehr Zeit brauchen, als ein paar Verwaltungsoperationen.


Anmelden zum Antworten