c++ Licznik nowej lini

0

Witajcie, mam problem ze zliczaniem nowych linii, o to kod:

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    string tekst;
    int i;
    int licznik=0;
    
    while(getline(cin, tekst))
    {
    
                       if(tekst[i] == '\n') 
                       {
                                   licznik++;
                       }
                       cout << licznik;
    }
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

Po kompilacji i wciśnięciu Enter program zamyka się z informacją, że przestał działać.

0
 
while(getline(cin, tekst)) numberOfLines++;
0

Nie inicjujesz zmiennej i, więc ma ona jakąś losową wartość. Jeżeli tekst ma X elementów a ty odwołujesz się do tekst[X + Y] (gdzie Y > 0) no to masz kłopot (najprawdopodobniej SIGSEGV).
Jak rozumiem chodzi Ci o zliczenie jedynie "pustych linii"? Jeżeli tak to powinno wystarczyć po prostu podstawienie pod i zera, albo najlepiej w ogóle i nie używać i odwołać się do indeksu "na sztywno". Jak chodzi o zliczenie wszystkich znaków nowej linii to wtedy możesz pobierać znak po znaku, zamiast kolejnych linii. A jeżeli po prostu o zliczenie linii to jak kolega wyżej podał.

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