Zliczanie linii w pliku

0

Mam do napisania rzekomo prosty program, który zlicza linie w pliku. Niestety nie bardzo ogarniam obsługę plików, więc zwracam się do Was z prośbą o pomoc. ;)
Mój program źle liczy te linie i wyświetla jakąś dużą liczbę. Czy ktoś mógłby mi podpowiedzieć, jak zrobić to poprawnie, bo już nie mam siły, a to dopiero początek przygody z plikami?

 #include<iostream>
 #include <fstream>
 #include <string>
 using namespace std;
 int main(void){
     int liczba_linii;
    string linia;
   string wyraz;
   ifstream plikWe;
   plikWe.open("polski.txt");
   if(!plikWe.is_open()){
    cout << "Blad!" << endl;
   }
   else{
        while(!plikWe.eof()){
            getline(plikWe, linia);
            liczba_linii++;
        }

   }

   cout << "W pliku jest " << liczba_linii << " linii" << endl;
   plikWe.close();
 }
3
int main()
{
    string line;
    int count = 0;
    ifstream f("foo.txt");
    while(getline(f, line))
        count++;
    cout << count;
}

Tyle powinno wystarczyć. Pewnie ładniej by było z std::count i parze std::istream_iterator<char>, ale to jest szybkie do napisania i powinno działać.

Twój kod jest blisko, ale sprawdza złe warunki i nie ustala wartości początkowej (UB).

1

Dzięki za pomoc, ale już wiem gdzie jest błąd.. Zmienna liczba_linii nie jest zainicjalizowana. To chyba przez tę porę :D

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