Wczytywanie z pliku do macierzy dwuwymiarowej problem z licznikiem petli
Ostatnio zmodyfikowano 2013-12-14 15:59
mared Temat założony przez niniejszego użytkownika |
Wczytywanie z pliku do macierzy dwuwymiarowej problem z licznikiem petli » 2013-12-14 15:02:36 Witam robię projekt na uczelnie siedzę nad tym problemem od wczoraj i nie wiem co jest grane. Zamysł jest dosyć prosty mam plik slowa.txt w którym przyjąłem na poczatku abababab cdcdcdcd słowa mogą mieć max 8 znaków. Chce zrzucić te słowa z pliku do tablicy dwuwymiarowej,ponieważ później muszę posortować je przez zliczanie po indeksach wystąpień. Problem pojawia się przy tym,że wczytuję znak po znaku i nęka mnie znak nowej linii dlatego dodałem odpowiedni warunek z instrukcją break.Jednak nie zwiększa mi przy tym j.Mimo,że powinien wyjść z jednej pętli i wejść w drugą zwiększając j. char znak; int i, j; fstream plik; plik.open( "slowa.txt", ios::in ); if( plik.good() ) { cout << "Zawartosc pliku:" << endl; while( !plik.eof() ) { for( j = 0; j < 2; j++ ) { for( i = 0; i <= 7; i++ ) { plik.get( znak ); if( !plik ) break; if( znak != '\n' ) { tablica[ i ][ j ] = znak; } else { break; } cout << tablica[ i ][ j ]; cout << " i: " << i << " j: " << j << endl; } } cout << endl; } cout << tablica[ 0 ][ 0 ]; cout << tablica[ 2 ][ 0 ]; cout << tablica[ 2 ][ 1 ]; plik.close(); } else cout << "Error! Nie udalo otworzyc sie pliku!" << endl;
|
|
leon_w |
» 2013-12-14 15:29:02 Spróbuj continue zamiast break. |
|
mared Temat założony przez niniejszego użytkownika |
» 2013-12-14 15:31:40 Zwiększyło się j jednak i zamiast od 0 zaczyna się od 1 przez co wszystko się przesuwa ;/ |
|
leon_w |
» 2013-12-14 15:39:15 Pewnie znak nowego wiersza w buforze zostaje. Albo spróbuj wyczyścić bufor, albo daj i=-1. Takie prowizoryczne rozwiązanie, ale działa :P. |
|
mared Temat założony przez niniejszego użytkownika |
» 2013-12-14 15:44:59 fflush( stdin ); uzylem nic to nie zmienilo
sync() rowniez ;/ wiec chyab to nie to :( |
|
leon_w |
» 2013-12-14 15:55:29 Pomogło też zmiana liczby w warunku w pętli z 7 na 8. Nawet Twoja pierwsza wersja dobrze z tym działa. W sumie do zczytania znaku nowego wiersza potrzebny 8-my obieg petli (w sumie 9-ty). |
|
mared Temat założony przez niniejszego użytkownika |
» 2013-12-14 15:59:43 ooo faktycznie ;) wtedy i=8 zajmuje biały znak i dalej idzie dobrze.Super :) Dzięki! |
|
« 1 » |