Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pomoc oko funkcije

[es] :: C/C++ programiranje :: C/C++ za početnike :: pomoc oko funkcije

[ Pregleda: 1996 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

tosheen_su

Član broj: 142768
Poruke: 6
*.tippnet.co.yu.



Profil

icon pomoc oko funkcije02.08.2007. u 21:08 - pre 203 meseci
imam par nejasnoca u vezi ove funkcije pa bih zamolio ako nego moze da mi pomogne.


Code:


istream& read_hw(istream& in,vector<double>& hw)
{
if (in) {
hw.clear();
double x;
while(cin>>x)
hw.push_back(x);
in.clear();
}
return in;
}



ova funkcija se poziva za argumente read_hw(cin,vek), vek je bilo koji vektor tipa double.

Prvo ono shto mi je jasno: funkcija uzima vrednost preko cin-a i to stavlja u vektor sve dok vrednosti cin-a odgovaraju tipu double, i da se vraca (return) in da bi se ponovo dobila vrednost koja ce se ubacivati , barem koliko sam ja skontao.

e sada ono sto mi nije jasno:

1) zasht0 je prvi parametar u funkcije referenca, da li bi isto radilo i kada bi bio poziv po vrednosti??

2)ako je parametar istream shta se proverava u uslovu if(in)??

3)da li se in.clear() izvrshava svaki put ili samo kada je javlja indikator greshke??

hvala unapred.

[Ovu poruku je menjao tosheen_su dana 03.08.2007. u 23:44 GMT+1]
 
Odgovor na temu

prog
Bihac

Član broj: 106882
Poruke: 77
*.806591-86.bih.net.ba.



Profil

icon Re: pomoc oko funkcije13.08.2007. u 13:51 - pre 203 meseci
1. istream se uvijek prosljeđiva kao referenca jer se ne moze kopirati
2. if(in) provjerava da li je in validna referenca tj. ako je in=0, tada se preskace cijeli blok i izvrsava samo return in.
3. in.clear(); se samo jednom izvrsava i to kada je vrijednost funkcije cin>>x false odnosno 0. Ona se poziva jednom. kad se nebi nikako pozivala imao bi beskonačnu petlji i funkcija se nebi nikad zavrsila.

Kod se moze formatirati preglednije
Code:

istream& read_hw(istream& in,vector<double>& hw)
{
     if (in) 
     {
         hw.clear();
         
         double x;
         
           while(cin>>x)
           {
               hw.push_back(x);
            }
         in.clear();
     }
return in;
}
 
Odgovor na temu

tosheen_su

Član broj: 142768
Poruke: 6
*.tippnet.co.yu.



Profil

icon Re: pomoc oko funkcije13.08.2007. u 16:03 - pre 203 meseci
hvala ti!
puno si mi pomogao.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: pomoc oko funkcije

[ Pregleda: 1996 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.