problem przy tworzeniu automatycznie powiększającej się tablicy
Ostatnio zmodyfikowano 2013-10-30 16:52
lukkaszga Temat założony przez niniejszego użytkownika |
problem przy tworzeniu automatycznie powiększającej się tablicy » 2013-10-30 15:54:01 Witam. Mam program, który otwiera wcześniej przygotowany plik z liczbami. Zczytuje każda linię i zamienia znak na liczbę umieszczając ją przy tym w tablicy. Chcę zrobić automatycznie powiększająca się tablicę. Początkowo ma ona rozmiar 5. Gdy ilość wczytanych liczb przekracza zakres tablicy dochodzi do powiększenia (przynajmniej teoretycznie - bo w tym miejscu program się wykrzacza). Program się kompiluje i uruchamia się, ale gdy dochodzi do momentu powiększenia tablicy wyskakuje w konsoli okno: Program ObsługaPliku.exe przestał działać. Gdzie jest problem? #include <iostream> #include <fstream> #include <conio.h> #include <cstdlib> using namespace std;
int main() { fstream plik; fstream plik1; int liczba, rozmiarTablicy = 5; int * wczytaneLiczby = new int[ rozmiarTablicy ]; char znakRozdzialu = ' '; int ileLiczb = 0; int ileParzystych = 0; int ileNieparzystych = 0; plik1.open( "c:\\_LUKASZ\\_MOJE PROJEKTY\\Dane1.txt", ios::out ); plik.open( "c:\\_LUKASZ\\_MOJE PROJEKTY\\liczby.txt", ios::in | ios::out ); if( plik.good() ) { string linia; int i = 0; cout << "W pliku znajduja sie:" << endl << endl; do { plik >> linia; liczba = atoi( linia.c_str() ); ileLiczb++; cout << i + 1 << ". " << liczba << endl; if( ileLiczb >= rozmiarTablicy ) { int nowyRozmiarTablicy = 2 * rozmiarTablicy; int * nowaTablica = new int[ nowyRozmiarTablicy ]; for( int j = 0; j == rozmiarTablicy; ++j ) nowaTablica[ j ] = wczytaneLiczby[ j ]; delete[] wczytaneLiczby; rozmiarTablicy = nowyRozmiarTablicy; wczytaneLiczby = nowaTablica; } wczytaneLiczby[ i ] = liczba; i++; if( liczba % 2 == 0 ) ileParzystych++; else ileNieparzystych++; } while( !plik.eof() ); plik.close(); } else cout << "Error! Nie udalo otworzyc sie pliku!" << endl; plik1 << "W pliku znajdowalo sie " << ileLiczb << " liczb w tym: " << ileParzystych << " parzystych i " << ileNieparzystych << " nieparzystych"; plik1.close(); getch(); return( 0 ); }
[/i] |
|
pekfos |
» 2013-10-30 16:10:39 for( int j = 0; rozmiarTablicy; ++j ) nowaTablica[ j ] = wczytaneLiczby[ j ];
To pętla nieskończona. |
|
lukkaszga Temat założony przez niniejszego użytkownika |
» 2013-10-30 16:38:15 ok poprawiłem, dzięki, ale nadal jest problem. teraz program po wykonaniu 5 kroków i natrafieniu na tą pętlę zwyczjnie się zatrzymuje ale już przynajmniej nie wyskakuje błąd obsługi pliku |
|
pekfos |
» 2013-10-30 16:39:19 Podaj kod. |
|
lukkaszga Temat założony przez niniejszego użytkownika |
» 2013-10-30 16:42:43 for( int j = 0; j = rozmiarTablicy; ++j ) nowaTablica[ j ] = wczytaneLiczby[ j ];
|
|
pekfos |
» 2013-10-30 16:45:20 |
|
lukkaszga Temat założony przez niniejszego użytkownika |
» 2013-10-30 16:52:42 bosze widzisz i nie grzmisz. człowiek całe życie się uczy:) dzięki wielkie. pozdro. do zamknięcia |
|
« 1 » |