Poslao: 10 Feb 2006 00:01
|
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.
|
|
Poslao: 10 Feb 2006 15:36
|
offline
- meka
- 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.
|
|
|
|
Poslao: 15 Feb 2006 01:50
|
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.
|
|
|
|
Poslao: 15 Feb 2006 14:23
|
offline
- meka
- 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!?
|
|
|
|
Poslao: 15 Feb 2006 19:34
|
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.
|
|
|
|
Poslao: 15 Feb 2006 22:07
|
offline
- meka
- 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.
|
|
|
|