Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Niepoprawne działanie getline() - wczytywanie z pliku tekstowego

Ostatnio zmodyfikowano 2014-06-28 21:07
Autor Wiadomość
Vister26
Temat założony przez niniejszego użytkownika
Niepoprawne działanie getline() - wczytywanie z pliku tekstowego
» 2014-06-28 18:38:10
Napisałem program który ma wyszukać w słowniku (plik *.txt, 32MB, bez polskich znaków) wszystkie słowa 4-literowe i wypisać je na ekran
C/C++
int main()
{
    fstream slownik;
    char wiersz[ 8 ];
   
    memset( wiersz, 0, 9 ); //zerowanie "na wszelki wypadek"
   
    slownik.open( "slownik.txt", ios::in );
   
    if( slownik.good() == true )
    {
        for( int i = 0; i < 9999; i++ )
        {
            memset( wiersz, 0, 8 );
            slownik.getline( wiersz, 8 );
           
            if( wiersz[ 3 ] != 0 && wiersz[ 4 ] == 0 ) // jesli wyraz ma 4 litery
            {
                cout << wiersz << endl;
            }
        }
        slownik.close();
        return 0;
    }
    else
         return - 1;
   
}

Program nie znajduje ani jednego takiego wyrazu (zwraca 0, ale "nie wchodzi" do wnętrza
if
), chociaż są ich tam setki. Czy błąd jest gdzieś w getline()?
P-112893
pekfos
» 2014-06-28 21:07:46
Na wszelki wypadek wychodzisz poza tablicę. Prawdopodobnie masz też za mały bufor i za mało słów wczytujesz.
P-112895
« 1 »
  Strona 1 z 1