nieoczekiwane wyniki co któreś uruchomienie programu
Ostatnio zmodyfikowano 2018-02-12 19:55
konishyapl Temat założony przez niniejszego użytkownika |
nieoczekiwane wyniki co któreś uruchomienie programu » 2018-01-27 22:22:38 Witam, rozwiązuję zadanie domowe z lekcji 33, o treści "Otwórz plik tekstowy, w którym będą znajdowały się tylko liczby całkowite, oddzielone od siebie spacjami. Następnie napisz program, który wczyta wszystkie liczby z pliku i wypisze sumę wszystkich liczb na standardowym wyjściu." napisałem program który wykonuje to polecenie, problem polega na tym że raz przy uruchomieniu pokazuje sumę prawidłowo, następnym razem ta suma jest mniejsza o 10, a czasami suma wynosi ponad 7kk... gdzie jest błąd ! dziękuję za pomoc. #include <fstream> #include <iostream> #include <string>
using namespace std;
bool wczytajPlik( string nazwaPliku, int * tab, int & suma, int & rozmiar ) { int i = 0; ifstream plik; plik.open( nazwaPliku.c_str() ); if( !plik.good() ) return false; while( plik.good() ) { plik >> tab[ i ]; cout << tab[ i ] << " "; suma += tab[ i ]; rozmiar++; i++; if( !plik.good() ) break; } return true; }
int main() { int wynik = 0; int * tablica; int ile = 0; tablica = new int[ ile ]; if( !wczytajPlik( "tekst.txt", tablica, wynik, ile ) ) cout << "Nie udalo sie otworzyc pliku!" << endl; cout << endl << "Wynik dodawania licz z pliku to: " << wynik; return 0; }
|
|
mateczek |
» 2018-01-27 22:33:31 int ile = 0; tablica = new int[ ile ];
|
|
pekfos |
» 2018-01-27 23:06:02 Po co ci ta tablica? Praktycznie jej nie używasz. |
|
konishyapl Temat założony przez niniejszego użytkownika |
» 2018-02-12 19:43:18 z dużym opóźnieniem, ale dzięki za wskazówki, poprawione, tablica wyrzucona, działa dobrze, chociaż nadal jestem bardzo ciekaw dlaczego czasami wynik był dobry a czasami nie? mateczek napisał że tablica była zadeklarowana jako pusta, myślałem że dynamicznie alokując rozmiar tablicy musi to być tak napisane, no i od razu do tej tablicy była wrzuca jakaś wartość z pliku, może ktoś pokazać jak powinno to być napisane przy użyciu tablicy?? |
|
Monika90 |
» 2018-02-12 19:55:44 Tam w ogóle nie było deklaracji tablicy, za to było utworzenie dynamicznej tablicy o rozmiarze zero - zmienna ile miała wartość zero w momencie wykonania new int[ ile ] . Utworzona tablica miała rozmiar zero i tak już jej zostało, późniejsze zmiany wartości zmiennej ile nie miały znaczenia. |
|
« 1 » |