Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++ - Zliczanie słów w każdej linii wczytanego pliku

.michal 19 Sty 2013 15:29 3435 5
  • #1 19 Sty 2013 15:29
    .michal
    Poziom 13  

    Witam,
    Zadanie mam takie po wczytaniu pliku zliczyć i wypisać ilość słów w każdej linii, nie musze zapamiętywać słów, ważna jest tylko ilość. Oddzielone są one przez spację lub znaki interpunkcyjne. Nie wiem jak zauważyć koniec linii i udało mi się policzyć słowa w pliku ale nie w każdej linii osobno. Może ktoś podpowie jakie modyfikacje wprowadzić ?? :)

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Z góry dziękuję
    Michał;)

    0 5
  • #3 19 Sty 2013 19:07
    Krzysztof Gustaw
    Poziom 23  

    Witam!
    Znak '\n' stanowi koniec linii (wiersza). Pamietaj tylko, że plik musi być otwarty w trybie czytania tekstów, jesli bowiem zostanie otwarty w trybie czytania bajtów to może byc różnie np para znaków '\0xd' '\0xa'

    0
  • #4 20 Sty 2013 15:20
    .michal
    Poziom 13  

    A teraz może ktoś mi podpowie czemu źle się numerują słowa w nowych liniach?? :)

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Z góry dzięki ;)

    0
  • Pomocny post
    #5 20 Sty 2013 21:13
    Piotrek.pxf
    Poziom 27  

    Spróbuj tego programu napisanego na szybko. Jeśli coś nie będzie działało to pisz. Dodałem kilka komentarzy. Przy sprawdzaniu czy znak nie jest "tekstem" jest taka linijka:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Sprawdza to czy znak jest interpunkcyjny, "spacją" lub znakiem kontrolnym. Dodatkowo sprawdza czy c jest większe od 0, bo poniżej zera są np polskie znaki, które by były brane za interpunkcyjne. Powyższe funkcje pochodzą z biblioteki ctype.h.

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #6 20 Sty 2013 22:37
    .michal
    Poziom 13  

    Jednak działa :P

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0