ilosc lini i slow w pliku

0

Ilosc slow wyswietla 0 , proszę o pomoc

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    fstream plik;
    int ilosc_slow = 0;
    string slowo;

    plik.open("in.txt",ios::in);

    if(plik.good()==false)
    {
        cout<<"NIe udalo sie wyswietlic pliku!";
    }
    string linia;
    int nr_linii=1;
    while(getline(plik,linia))
    {
        nr_linii++;
        //   cout << linia << endl; //wyświetlenie linii
    }
    cout<<nr_linii<<endl;

    while (plik >> slowo)
    {
        ilosc_slow += 1;
    }
    cout << "Ilosc slow w pliku = " << ilosc_slow << endl;

plik.close();
return 0;
}
1

Jak przeczytałeś cały plik, to co Ci zostało do czytania? Jakie słowa chcesz nagle magicznie wyczytać? A zanim będziesz szukał jak wrócić na początek, to się zastanów czy w ogóle musisz czytać plik jeszcze raz od nowa.

0

Zamknąłem i ponownie otworzyłem plik i działa, ale pewnie slaby sposób?

0

Podejrzewam, że potrzebujesz tego: http://www.cplusplus.com/reference/istream/istream/seekg/

1
dcielak napisał(a):

Zamknąłem i ponownie otworzyłem plik i działa, ale pewnie slaby sposób?

Możesz albo czytać znak po znaku i zwiększać odpowiednie liczniki po natrafieniu na spacje/znak nowej linii, albo użyć tandemu getline(do czytania linia po linii) + stringstream(do wyciągania liczby wyrazów w linii)

1 użytkowników online, w tym zalogowanych: 0, gości: 1