Zeilenanzahl aus Textdokument ermittlen



  • SeppJ schrieb:

    Denk dran, dass auch ein (nicht-leeres) Dokument ganz ohne Zeilenumbruch trotzdem noch eine Zeile hat.

    Da \n ein Terminator ist, wuerde ich eine solche Zeile nicht mitzaehlen, oder das Dokument als ungueltig werten.



  • EOP, weil man ihn dereferenzieren, inkrementieren und vergleichen kann.

    Oder meinst du weniger wieso es kompiliert als wieso es funktioniert?

    Übrigens hätte ich

    count( istream_iterator<char>( textdocument ), istream_iterator<char>(), '\n' )
    

    genommen, ist da ein relevanter Performance-Unterschied, Werner?



  • EOP schrieb:

    Meine Frage wäre jetzt, wieso

    istreambuf_iterator< char >()
    

    ein gültiger

    InputIterator last
    

    ist.

    istreambuf_iterator

    cplusplus.com schrieb:

    The default constructor constructs an end-of-stream iterator

    So let it be written, so let it be done.

    Sone schrieb:

    EOP, weil man ihn dereferenzieren, inkrementieren und vergleichen kann.

    Sehr sinnvoll...



  • Sone schrieb:

    Übrigens hätte ich

    count( istream_iterator<char>( textdocument ), istream_iterator<char>(), '\n' )
    

    genommen, ist da ein relevanter Performance-Unterschied, Werner?

    Einerseits das, andererseits liefert deine Variante ein falsches Resultat.



  • @Swordfish: Das hatte ich überlesen. Danke.



  • Kellerautomat schrieb:

    SeppJ schrieb:

    Denk dran, dass auch ein (nicht-leeres) Dokument ganz ohne Zeilenumbruch trotzdem noch eine Zeile hat.

    Da \n ein Terminator ist, wuerde ich eine solche Zeile nicht mitzaehlen, oder das Dokument als ungueltig werten.

    Dann würdest du nen ziemlichen Blödsinn machen.
    Jeder Text-Editor macht dir so eine Datei problemlos auf, und alle die ich kenne können sie auch so speichern.



  • SeppJ schrieb:

    Wenn du es schön mit Zuckerguss haben willst, denkst du auch da dran, dass, wenn das letzte Zeichen ein Zeilenumbruch ist, dies nicht wirklich als eine richtige neue Zeile gilt.

    Also die Text-Editoren die ich so kenne sehen das anders 😉



  • Sone schrieb:

    EOP, weil man ihn dereferenzieren, inkrementieren und vergleichen kann.

    Oder meinst du weniger wieso es kompiliert als wieso es funktioniert?

    Übrigens hätte ich

    count( istream_iterator<char>( textdocument ), istream_iterator<char>(), '\n' )
    

    genommen, ist da ein relevanter Performance-Unterschied, Werner?

    Wenn du nicht das Whitespace-Skipping abstellst, zählt der istream_iterator überhaupt keine newlines, da das für ihn Whitespaces sind.



  • JanK411 schrieb:

    Hallo Leute

    Ich bräuchte einen Befehl, um die Zeilenanzahl in einem Textdokument zu ermitteln.
    Also ich habe eine Datei mit n Zeilen und brauche den Wert von n...

    Vielen Dank
    JanK411

    Mit getline die Datei zeilenweise einlesen und die Zeilen zählen?



  • Na toll... da hätt ich ja auch selbst drauf kommen können
    Das Auslesen ist ja sogar in ner schleife
    dann brauch ich ja nur die Variable zur erhöhen --> n++

    *kopfgegendiewandschlag*

    Trotzdem danke an euch alle

    JanK411


Anmelden zum Antworten