Ne mogu da rešim ovaj C++ problem ...

Ne mogu da rešim ovaj C++ problem ...

offline
  • Pridružio: 13 Maj 2005
  • Poruke: 41
  • Gde živiš: Čačak

Kako da snimim i učitam sve ove podatke strukture u "Podaci.txt" ?
struct neki_tip { public:                           char ime[20];                          int data_one,data_two,                                data_tree,data_ext;                                           int data_array[5];                               }neki_niz_struktura[10]; // Naravno u toku programa sve one dobijaju vrednosti...Ovako sam ih sačuvao:
int x=y=0; ofstream sacuvaj("Podaci.txt");       for(;y<10;y++){                  sacuvaj    <<neki_niz_struktura[y].ime                        <<" "<<neki_niz_struktura[y].data_one                      <<" "<<klneki_niz_strukturaub1[y].data_two                      <<" "<<klneki_niz_strukturaub1[y].data_tree                      <<" "<<kluneki_niz_strukturab1[y].data_ext;    for(;x<5;x++){sacuvaj<<" "<<neki_niz_strukturab1[y].data_array[x];}                                      sacuvaj<<"\n";            } što bi u fajlu bilo:

stanislav 6 6 6 4 2 4 2 4 2 //znači zadnjih 5 su elementi niza data_array
rumenka 9 2 7 5 4 6 4 5 2
radovan 9 7 5 9 0 7 0 2 3
georgina 5 3 5 5 0 3 0 2 3
.
.
.
e sad kako da učitam ovo u program ?
ovako sam probao:
int xk=0,i; ifstream ucitaj("Podaci.txt");        while(ucitaj>>neki_niz_struktura[y].ime){                                 ucitaj>>neki_niz_struktura[xk].data_one                          >>neki_niz_struktura[xk].data_two                         >>neki_niz_struktura[xk].data_tree                         >>neki_niz_struktura[xk].data_ext;         for(;i<5;i++){ucitaj>>neki_niz_struktura[xk].data_array[i];}                                                           xk++;                          }
i neće, tj. učita samo neki_niz_struktura[0].ime

Ono, hvala unapred na svakoj pomoći i to...



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • meka  Male
  • Počasni građanin
  • Pridružio: 06 Avg 2003
  • Poruke: 811
  • Gde živiš: Novi Sad / Vojvodina

Koristi while (!ucitaj.eof()) umesto tvog while-a. U for petrlji MORAŠ inicijalizovati i inače će ti samo prvi prolaz kroz while petrlju raditi kako treba.



offline
  • Pridružio: 13 Maj 2005
  • Poruke: 41
  • Gde živiš: Čačak

Ne, jesam inicijalizovao u for petlji (ne znam kako li sam uspeo ovde da izbrišem i=0), ali opet
i sa while (!ucitaj.eof()) imam probleme. Kada pokrenem program i tek kad dođe do učitavanja iskoči dijalog :
The instruction at "0x00402936" referenced memory at "0x72463a6d". The memory could not be "read" OK to terminate program CANCEL to debug program
// pritisnem OK pojavi se drugi
The instruction at "0x0012e8dc" referenced memory at "0x00000000". The memory could not be "writen" OK to terminate program CANCEL to debug program
// pritisnem OK
Dok nisam uveo niz data_array[5] u strukturu lepo je sve učitavao i sa mojom WHILE 5ljom.
Ali kako sam počeo učitavati ovaj niz ne ide (lepo se snimi ali ne mogu da ga učitam). Pokušao sam
sa for petljom neće, pokušao sam i ručno ono :
ucitaj>>neki_niz_struktura[xk].data_array[0]       >>neki_niz_struktura[xk].data_array[1]       >>neki_niz_struktura[xk].data_array[2]       >>neki_niz_struktura[xk].data_array[3];       .       .       .
neće ni ovo. Izgleda da mi je glavni problem u učitavanju ovog niza.
I Šta uopšte znače ovi dijalog prozori.

offline
  • meka  Male
  • Počasni građanin
  • Pridružio: 06 Avg 2003
  • Poruke: 811
  • Gde živiš: Novi Sad / Vojvodina

Nisam win programer, ali imam osečaj da to dodaje tvoj IDE. Što se tiče učitavanja, ajde probaj jednostavan primer, tipa samo ispiši ono što isčitaš iz ifstream-a. Možda ne učitava program kako treba!?

offline
  • Pridružio: 13 Maj 2005
  • Poruke: 41
  • Gde živiš: Čačak

Thanks for the tip (i s^am sam o tome razmišljao ali sam bio ubeđen da neću moći da učitam
onaj niz - i još jednom... nisam bio u pravu).Uradio sam predloženo i evo gde je bila greška :
Pošto sam želeo da podatke čuvam u ovom formatu ...
stanislav 6 6 6 4 2 4 2 4 2'\n'
rumenka 9 2 7 5 4 6 4 5 2'\n'
radovan 9 7 5 9 0 7 0 2 3'\n'
georgina 5 3 5 5 0 3 0 2 3'\n'
|_
... koristio sam naravno '\n' na kraju svake XK iteracije, znači da je on i prilikom zadnje
iteracije ubacio '\n' pa je prilikom učitavanja pokušao da ga učita u strukturu pa je valjda zbog toga
bio prvi dijalog prozor "can`t read", a s`obzirom da su u nizu struktura sva mesta već bila bukirana
dolazi do "can`t write" dijaloga. Samo sam ušao u "Podaci.txt" i izbrisao/povukao taj jedan "enter". Posle
toga je normalno učitavao, mada me i dalje buni što sam i ranije koristio isti format čuvanja pa nije
bilo problema... U svakom slučaju hvala na pomoći ! Baš sam lupao glavu oko ovoga.

offline
  • meka  Male
  • Počasni građanin
  • Pridružio: 06 Avg 2003
  • Poruke: 811
  • Gde živiš: Novi Sad / Vojvodina

Mislim da ne bi bilo loše da koristiš istream.peak() i gledaš da li je neki karakter blanko znak (postoji funkcija isblank() i isspace()). Tako preskačeš sve moguće gluposti.

Ko je trenutno na forumu
 

Ukupno su 828 korisnika na forumu :: 2 registrovanih, 0 sakrivenih i 826 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Shilok, wizzardone