[c++] problem z wczytywaniem do tablicy
Ostatnio zmodyfikowano 2013-10-30 20:08
lukkaszga Temat założony przez niniejszego użytkownika |
[c++] problem z wczytywaniem do tablicy » 2013-10-30 19:46:43 utworzyłem dynamiczną tablicę do której wczytuję liczby z pliku. tablica powiększa się , gdy liczba elementów przekracza rozmiar tablicy. problem pojawił się gdy wyświetlam elementy tablicy. okazuje się że wczytane liczby różnią się od tych zapisanych w pliku. proszę o pomoc #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; wczytaneLiczby[ i ] = liczba; i++; cout << "zapisana liczba do tablicy ---> " << wczytaneLiczby[ i ] << " rozmiar tablicy wynosi: " << rozmiarTablicy << 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; } 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 ); }
link do printa z wyjścia programu na konsoli. http://zapodaj.net/e599c128183d6.jpg.html |
|
pekfos |
» 2013-10-30 19:48:49 for( int j = 0; j == rozmiarTablicy; ++j ) nowaTablica[ j ] = wczytaneLiczby[ j ];
Warunek jest błędny. |
|
lukkaszga Temat założony przez niniejszego użytkownika |
» 2013-10-30 20:07:10 logicznie rozumowanie wydaje mi się dobre. w pętli kopiuję każdy element ze starej tablicy do nowej. usuwam starą tablicę. zwiększam ilość elementów jakie może przyjąć stara tablica i ponownie przypisuję wartości dwóch tablic. mogę prosić o podpowiedź na co konkretnie zwrócić uwagę? |
|
pekfos |
» 2013-10-30 20:08:25 Na warunek.. |
|
« 1 » |