Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.285
|
čitano: 1.704.321
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
sportline kaže...

Znači ovaj drugi je u redu samo treba napraviti *dat u notped-u, to ne znam ali nije mi ni bitno.

Kako ne znas? Nauci. Napravi datoteku brojevi.txt, u nju u svaki red ukucaj po jedan cijeli broj. Spremi datoteku u folder gdje se nalazi program.

 

Liniju u programu izmjeni sa:

dat=fopen("brojevi","r");

 

u:

dat=fopen("brojevi.txt","r");

 

I eto ga. Velika stvar... :D

 

Btw. ovo sto si ti do sada pisao je C a ne C++. Nauci razlikovati ta dva jezika.

 Napravio datoteku brojevi.txt u notpedu sa cijelim brojevima, stavio u folder projekta, zamjenio ovo u liniji coda i neće i dalje mi javlja Expression:(stream != NULL)

E8500, EP45-DS3, HD4870 GS, DDR 2x2GB, Corsair TX650, WD 640GB, SAMSUNG HD103SJ 1TB,SAMSUNG T220, TERRATEC Cinergy 2400i DT Dual DVB-T tuner
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
sportline kaže...

 Napravio datoteku brojevi.txt u notpedu sa cijelim brojevima, stavio u folder projekta, zamjenio ovo u liniji coda i neće i dalje mi javlja Expression:(stream != NULL)

To ti se dogada zato sto program ne moze otvoriti datoteku. A ne moze ju otvoriti zato sto ili ima pogresno ime, ili ju nisi stavio na pravo mjesto. Provjeri zove li se datoteka doista "brojevi.txt" a ne "brojevi" ili "brojevi.txt.txt" (windows explorer prikriva ekstenzije poznatih tipova datoteka, pa mozes imati problema ako si pokusao promijeniti ekstenziju preimenovanjem datoteke).

 

Btw, malo sam ti uredio kod da ne izgleda onako nakaradno:

 

#include <stdio.h>

int main()
{
    int niz[20], br=0, i, sum=0, pr;
    FILE *dat;
   
    dat=fopen("brojevi.txt", "r");
    while (!feof(dat))
    {
        fscanf(dat, "%d", &niz[br]);
        br++;
    }
    fclose(dat);
   
    for (i=0; i<br; i++)
        sum=sum+niz[i];
   
    pr=sum/br;
    printf("%d", pr);
    return 0;
}

 

 

My computer once beat me at chess, but we got even after a round of boxing.
Poruka je uređivana zadnji put čet 29.9.2011 19:57 (rustweaver).
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
sportline kaže...

Napravio datoteku brojevi.txt u notpedu sa cijelim brojevima, stavio u folder projekta, zamjenio ovo u liniji coda i neće i dalje mi javlja Expression:(stream != NULL)

A zašto ti inače u program ne ugradiš mogućnost da ti on kreira spornu datoteku? Pa da zapišeš podatke tako da budeš posve siguran da ćeš ih moći pročitati? I da ih čitaš kamo ih stvarno i sprema?

 

Nadalje - što ti znači (stream != NULL)? Imaš li ti gdje u programu varijablu nazvanu stream? Ili kakva je to poruka? Nakon otvaranja datoteke moraš provjeriti je li ta datoteka stvarno otvorena, dakle u tvom slučaju to bi bilo:

if (dat != NULL)...

 

Tek u tom slučaju smiješ ići čitati iz datoteke.

 

Nadalje - koliko vidim, možeš učitati maksimalno 20 brojeva. A ti čitaš do kraja datoteke! while(!feof(dat))

Dakle, sve bi trebalo biti ok, ako ima manje od 20 brojeva.

 

16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
 

 

#include <stdio.h>

int main()
{
    int niz[20], br=0, i, sum=0, pr;
    FILE *dat;
   
    dat=fopen("brojevi.txt", "r");
    while (!feof(dat))
    {
        fscanf(dat, "%d", &niz[br]);
        br++;
    }
    fclose(dat);
   
    for (i=0; i<br; i++)
        sum=sum+niz[i];
   
    pr=sum/br;
    printf("%d", pr);
   return 0;
}

 

 Zašto će mi ovo return 0;??

 

E8500, EP45-DS3, HD4870 GS, DDR 2x2GB, Corsair TX650, WD 640GB, SAMSUNG HD103SJ 1TB,SAMSUNG T220, TERRATEC Cinergy 2400i DT Dual DVB-T tuner
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
sportline kaže...
 Zašto će mi ovo return 0;??

 

http://www.cplusplus.com/doc/tutorial/program_structure/

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
sportline kaže...
 Zašto će mi ovo return 0;??

Po Standardu, svaka funkcija mora nesto vratiti. Ako funkcija nista ne vraca, tada mora biti tipa void. Ako je tipa int, mora vratiti integer, bezobzira vraca li ona stvarno nesto ili ne. O tome ti kao programer moras brinuti. Standard kaze da funkcija main() mora biti tipa int. Prema tome mora vracati integer. Zato return 0;.

There's no school like the old school and I'm the fucking headmaster!
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
sportline kaže...
 Zašto će mi ovo return 0;??

Po Standardu, svaka funkcija mora nesto vratiti. Ako funkcija nista ne vraca, tada mora biti tipa void. Ako je tipa int, mora vratiti integer, bezobzira vraca li ona stvarno nesto ili ne. O tome ti kao programer moras brinuti. Standard kaze da funkcija main() mora biti tipa int. Prema tome mora vracati integer. Zato return 0;.

I ti pročitaj link koji sam dao. Naime, tvoje objašnjenje pada na tome kad se zapitaš - a zašto bi funkcija main uopće išta morala vraćati?

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...

I ti pročitaj link koji sam dao. Naime, tvoje objašnjenje pada na tome kad se zapitaš - a zašto bi funkcija main uopće išta morala vraćati?

Zato.

There's no school like the old school and I'm the fucking headmaster!
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

errorlevel tj. kod koji program vraca po prekidu izvrsavanja. Po tome operacijski sustav moze skuziti je li bilo nekih problema pri izvrsavanju. Moze se koristiti i za proslijedivanje parametara batch skriptama...

Proslijeduje se preko main funkcije, zato sto zavrsetak main funkcije znaci zavrsetak programa, stoga je odluceno da se povratna vrijednost main funkcije koristi kao povratna vrijednost programa. Ako se koristi void main, tada je povratna vrijednost programa (errorlevel) nedefinirana.

 

Izgubio je na znacaju u dobu GUI aplikacija, ali jos je uvijek tu i moze se koristiti ako je potrebno.

My computer once beat me at chess, but we got even after a round of boxing.
Poruka je uređivana zadnji put čet 29.9.2011 20:33 (rustweaver).
16 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Aha nisam primjetio da si mi postavio int main (), kod mene je bilo void, ok.

E8500, EP45-DS3, HD4870 GS, DDR 2x2GB, Corsair TX650, WD 640GB, SAMSUNG HD103SJ 1TB,SAMSUNG T220, TERRATEC Cinergy 2400i DT Dual DVB-T tuner
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
sportline kaže...

Aha nisam primjetio da si mi postavio int main (), kod mene je bilo void, ok.

I? Jel ti na kraju proradio program ili se jos uvijek mucis?

My computer once beat me at chess, but we got even after a round of boxing.
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Neće pa neće, sad sam uradio još jedan sličan:
 
Napišite program koji čita sve brojeve iz datoteke brojevi.txt. Ispisati najveći i najmanji broj.
 
 
 
#include <stdio.h>
 
void main()
{
 int niz[20], br=0, i, min, max;
 FILE *dat;
 
 dat=fopen("brojevi.txt","r");
 while(!feof(dat))
 {
  fscanf(dat,"%d", &niz[br]);
  br++;
 }
 fclose(dat);
 
 min=niz[0];
 max=niz[0];
 
 for(i=0;i<br;i++)
 {
  if(niz[i]<min)
  {
   min=niz[i];
  }
 }
 for(i=0;i<br;i++)
 {
  if(niz[i]>max)
  {
   max=niz[i];
  }
 }
 
 printf("%d %d", min, max);
}
 
I opet isto, program radi u redu, barem mi se tako čini ali kad napravim u notpadu brojevi.txt i napunim je brojevima, ništa...datoteku tavim di sam na slici označio

E8500, EP45-DS3, HD4870 GS, DDR 2x2GB, Corsair TX650, WD 640GB, SAMSUNG HD103SJ 1TB,SAMSUNG T220, TERRATEC Cinergy 2400i DT Dual DVB-T tuner
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
sportline kaže...

Neće pa neće, sad sam uradio još jedan sličan:

Ajde probaj datoteku brojevi.txt staviti u c:\ (dakle u root, tako da bude c:\brojevi.txt), a program izmjeni ovako:

 

ovo:

dat=fopen("brojevi.txt","r");

u ovo:

dat=fopen("c:\\brojevi.txt","r");

 

Pa onda probaj.

 

My computer once beat me at chess, but we got even after a round of boxing.
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
sportline kaže...

Neće pa neće, sad sam uradio još jedan sličan:

Rekao sam ti da trebaš provjeriti jesi li otvorio datoteku! Ne možeš čitati iz datoteke, ako je nisi uspješno otvorio.

 

I ponovno - funkcija main vraća vrijednost tipa int - dakle, ne možeš imati void main(), možeš imati samo int main().

 

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int niz[20], br = 0, i, min, max;
    FILE * dat;

    dat = fopen("brojevi.txt", "r");

    if (dat != NULL)
    {
        while (!feof(dat))
        {
            fscanf(dat, "%d", & niz[br]);
            br++;
        }
        fclose(dat);

        min = niz[0];
        max = niz[0];

        for (i = 0; i < br; i++)
        {
            if (niz[i] < min) min = niz[i];

            if (niz[i] > max) max = niz[i];
        }

        printf("%d %d", min, max);
    } else cout << "Datoteka ne postoji!";

    return 0;
}

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
sportline kaže...

I opet isto, program radi u redu, barem mi se tako čini ali kad napravim u notpadu brojevi.txt i napunim je brojevima, ništa...datoteku tavim di sam na slici označio

Pa dobro, zar ne vidis da ti kaze da je mozda neka greska u fajlu f:\ddf\vctools\blabla_ne_vidim_dobro\nesto.c u liniji 44. Jesi probao otvoriti taj fajl i vidjeti u cemu je problem? Naime, vidim da ti kaze "Debug Assertion Failed", a koliko vidim nigdje nisi koristio assert(), a bome nemas niti includean cassert.

 

I daj koristi int main(), a ne void main().

There's no school like the old school and I'm the fucking headmaster!
Poruka je uređivana zadnji put čet 29.9.2011 21:31 (1domagoj1).
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

jedini problem kod c++ visual studia vidim samo što jako sporo compajlira... inače je ok

It's hard to believe That there's nobody out there It's hard to believe That I'm all alone...
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...

Rekao sam ti da trebaš provjeriti jesi li otvorio datoteku! Ne možeš čitati iz datoteke, ako je nisi uspješno otvorio.

Ma gotovo sam siguran da ju nije uspjesno otvorio. Pitanje je sada zasto ju ne uspjeva otvoriti.

My computer once beat me at chess, but we got even after a round of boxing.
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
mbaksa kaže...

Rekao sam ti da trebaš provjeriti jesi li otvorio datoteku! Ne možeš čitati iz datoteke, ako je nisi uspješno otvorio.

Ma gotovo sam siguran da ju nije uspjesno otvorio. Pitanje je sada zasto ju ne uspjeva otvoriti.

Zato jer ju je spremio u krivu mapu. Tj. otvara nepostojeću datoteku. Zato sam mu i rekao neka programom spremi brojeve u datoteku - onda je siguran da će program tražiti datoteku tamo gdje ju je i kreirao.

15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...

Zato jer ju je spremio u krivu mapu. Tj. otvara nepostojeću datoteku.

On tvrdi da se datoteka nalazi u folderu kompajliranog programa (ako pogledas onaj screenshot na kojem je assertion error, oznacio je folder iz kojeg se program pokrece i tvrdi da je tamo strpao i datoteku). Vise nisam pametan... :D

My computer once beat me at chess, but we got even after a round of boxing.
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
mbaksa kaže...

Zato jer ju je spremio u krivu mapu. Tj. otvara nepostojeću datoteku.

On tvrdi da se datoteka nalazi u folderu kompajliranog programa (ako pogledas onaj screenshot na kojem je assertion error, oznacio je folder iz kojeg se program pokrece i tvrdi da je tamo strpao i datoteku). Vise nisam pametan... :D

Nije bitno kamo je on Notepadom spremio datoteke, nego je bitno odakle njegov program čita datoteke kad se pokrene - dakle, koji je njegov radni direktorij. Očito je ili da mu to nije radni direktorij ili je krivo napisao naziv datoteke. Neka kreira datoteke (ne mora ju ni puniti podacima) pomoću svog programa, istog tog programa kojim pokušava otvoriti datoteku za čitanje pa neka pogleda gdje mu ju je program kreirao.

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
mbaksa kaže...

Rekao sam ti da trebaš provjeriti jesi li otvorio datoteku! Ne možeš čitati iz datoteke, ako je nisi uspješno otvorio.

Ma gotovo sam siguran da ju nije uspjesno otvorio. Pitanje je sada zasto ju ne uspjeva otvoriti.

Okej, izguglao sam spornu datoteku.

 

/***
*feoferr.c - defines feof() and ferror()
*
*       Copyright (c) 1989-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       Defines feof() (test for end-of-file on a stream) and ferror() (test
*       for error on a stream).
*
*******************************************************************************/

// kod

// 44. linija

int __cdecl feof (
        FILE *stream
        )
{
        return( ((stream)->_flag & _IOEOF) );
}


[...]

There's no school like the old school and I'm the fucking headmaster!
Poruka je uređivana zadnji put čet 29.9.2011 22:11 (1domagoj1).
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Debug assert failed je problem specifičan za Visual Studio i milijuni stvari ga mogu uzrokovati. Program ne mora nužno biti krivo napisan. No prvo bi trebalo provjeriti da li se datoteka uspješno otvorila:

 

if((dat = fopen("brojevi.txt", "r"))==NULL){
    printf("Ne mogu otvoriti datoteku!");
    return -1;
}

 

i izbjegavati koristiti feof jer nerjetko zbog njega se zadnji podatak u datoteci može pročitati dva puta (iako ne bi trebao!). Umjesto toga napraviti ovakvo nešto:

 

while (fscanf(dat, "%d", &niz[br++]) != EOF);
fclose(dat);

 

..a dalje je sve lagano.

Poruka je uređivana zadnji put čet 29.9.2011 22:05 (TracerCPP).
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...

Nije bitno kamo je on Notepadom spremio datoteke, nego je bitno odakle njegov program čita datoteke kad se pokrene - dakle, koji je njegov radni direktorij.

To je tocno. Ocito sam krivo pretpostavio da mu je defaultni radni direktorij onaj gdje se nalazi izvrsna datoteka. Ja jos nisam imao niti jedan takav slucaj, osim kada bih namjerno preko shortcuta mijenjao radni direktorij. Moguce je i da VS mijenja radni direktorij programa. Tada bi to valjda bio direktorij od projekta (odnosno "123"), a ne poddirektorij "debug"...

 

Rekao sam mu da napravi to sa notepadom jer mi se ucinilo brze i sa manje komplikacija, ali sada kad vidim kamo je sve to otislo, krace bi bilo da sam mu napisao kod koji bi mu nabrzinu napravio i popunio datoteku random brojevima i time izbjegao sve ove komplikacije.

 

Gdje su sada oni koji govore da je VS idealan za pocetnike? {#}

My computer once beat me at chess, but we got even after a round of boxing.
Poruka je uređivana zadnji put čet 29.9.2011 22:10 (rustweaver).
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

Debug assert failed je problem specifičan za Visual Studio i milijuni stvari ga mogu uzrokovati. Program ne mora nužno biti krivo napisan.

Konkretno ovaj assert fail se javlja zbog dijela koda koji sam ovdje napisao, zakljucio bih iz tog isjecka koda zbog datoteke i feof-a.

There's no school like the old school and I'm the fucking headmaster!
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
TracerCPP kaže...

Debug assert failed je problem specifičan za Visual Studio i milijuni stvari ga mogu uzrokovati. Program ne mora nužno biti krivo napisan.

Konkretno ovaj assert fail se javlja zbog dijela koda koji sam ovdje napisao, zakljucio bih iz tog isjecka koda zbog datoteke i feof-a.

Nisam siguran da sam te dobro shvatio. Ne kužim što se opterećuješ s tim, kad je problem u tome što uopće nije otvorio datoteku. Pa je sasvim očekivano da će feof (ili bila koja druga funkcija vezana uz datoteke) izbaciti grešku, kad datoteka ne postoji, kad je handle NULL!

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...

Nisam siguran da sam te dobro shvatio. Ne kužim što se opterećuješ s tim, kad je problem u tome što uopće nije otvorio datoteku. Pa je sasvim očekivano da će feof (ili bila koja druga funkcija vezana uz datoteke) izbaciti grešku, kad datoteka ne postoji, kad je handle NULL!

Pa naravno, to sam i gore isto stavio, da je vracen NULL (samo sam editirao).

 

Hm, pa najbolje je pogledati otkud potjece neki problem, pa poceti traziti od tog mjesta, u ovom slucaju je to bila ova datoteka feoferr.c na liniji 44 iz cega se najjasnije vidi u cemu je problem (iako smo ajd, vec vise puta ustanovili u cemu je problem :D). Ja ne znam drugi nacin rjesavanja problema, osim procitati sto kompajler/debugger kaze i koji error izbaci, pa onda gledati u kodu u cemu je greska...

There's no school like the old school and I'm the fucking headmaster!
16 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Napišite program koji učitava 5 stringova, u funkciji ih sortira po broju znakova ispisuje sortirane u glavnome programu.

Kako da vratim iz funkcije u gl.program ovo što je funk.sortirala?

 

#include <string.h>

int sort(char x[5][20]);
int main()
{
 char niz[5][20];
 int br, i;
    for(i=0;i<5;i++)
 {
  scanf("%s", niz[i]);
 }
 br=sort(niz);
 printf("%s",br);
}
int sort(char x[5][20])
{
 int i,j;
 char pom[20];
 for(i=0;i<5;i++)
 {
  for(j=i+1;j<5;j++)
  {
   if(strlen(x[i])<strlen(x[j]))
   {
    strcpy(pom,x[i]);
    strcpy(x[i],x[j]);
    strcpy(x[j],pom);
   }
  }
 }
 
}

E8500, EP45-DS3, HD4870 GS, DDR 2x2GB, Corsair TX650, WD 640GB, SAMSUNG HD103SJ 1TB,SAMSUNG T220, TERRATEC Cinergy 2400i DT Dual DVB-T tuner
Moj PC  
0 0 hvala 0
17 godina
moderator
offline
Re: Programiranje u C++-u - pitanja i odgovori
sportline kaže...

Napišite program koji učitava 5 stringova, u funkciji ih sortira po broju znakova ispisuje sortirane u glavnome programu.

Kako da vratim iz funkcije u gl.program ovo što je funk.sortirala?

Polje se šalje kao referenca (ili, reći će neki, pokazivač). To znači da si mijenjanjem sadržaja polja u funkciji mijenjao originalno polje. To opet znači da nema nikakvog vraćanja polja glavnoj funkciji, nego u glavnoj funkciji jednostavno ispišeš polje.

16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Znači kako sam ja skužio ovo u funkciji ostaje kako je sortirano i u glavnom programu samo ispišem polje kroz for petlju.

 

#include <string.h>

int sort(char x[5][20]);
int main()
{
 char niz[5][20];
 int br, i;
    for(i=0;i<5;i++)
 {
  scanf("%s", niz[i]);
 }
 for(i=0;i<5;i++)

printf("%s",niz[i]);

}
}
int sort(char x[5][20])
{
 int i,j;
 char pom[20];
 for(i=0;i<5;i++)
 {
  for(j=i+1;j<5;j++)
  {
   if(strlen(x[i])<strlen(x[j]))
   {
    strcpy(pom,x[i]);
    strcpy(x[i],x[j]);
    strcpy(x[j],pom);
   }
  }
 }
 
}

E8500, EP45-DS3, HD4870 GS, DDR 2x2GB, Corsair TX650, WD 640GB, SAMSUNG HD103SJ 1TB,SAMSUNG T220, TERRATEC Cinergy 2400i DT Dual DVB-T tuner
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Napravi ovako, pa ćeš vidjeti da program radi, odnosno u fopen funkciju unesi argument da se može kreirati datoteka - "file access modes".

o fopen funkciji pogledaj ovdje:

http://www.cplusplus.com/reference/clibrary/cstdio/fopen/

 

 

 

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int niz[20], br = 0, i, min, max;
    FILE * dat;

    dat = fopen("brojevi.txt", "a+");

    if (dat != NULL)
    {
        while (!feof(dat))
        {
            fscanf(dat, "%d", &niz[br]);
            br++;
        }
        fclose(dat);

        min = niz[0];
        max = niz[0];

        for (i = 1; i < br; i++)
        {
            if (niz[i] < min) min = niz[i];

            if (niz[i] > max) max = niz[i];
        }

        printf("%d %d", min, max);
    } else cout << "Datoteka ne postoji!";

    return 0;
}

Dakle , sa ovim access modom si prilikom otvaranja kreirao datoteku ako ona ne postoji, a ako postoji - otvaraš je bez brisanja.

A ovo je dobra fora ako ćemo primjeniti @mbaksin s.w.a.t. (on voli ubacivanje inkrementa u index polja){#}

 

while (!feof(dat))
        {
            fscanf(dat, "%d", &niz[br++]);
        }

 

Poruka je uređivana zadnji put pet 30.9.2011 12:56 (Floki).
 
0 0 hvala 0
E-mail:
Lozinka:
 
vrh stranice