[ nemanjamil @ 04.05.2008. 22:07 ] @
EDIT: X Files : Molim Vas da zbog preglednosti, kod upisujete između tag-ova predviđenih za to:

[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]

Code:

 class PrijavljivanjeIspita
{
public:
    int unesiIme()
{
char UI[100];
    int x;
    int p;
    do
    {
        cout <<"Ime i prezime studenta:\t";
        cin.getline(UI,100);
        x=0;
        p=1;
        while (UI[x]!='\0')
        {
            if (isdigit(UI[x]))
            {
                p=0;
            }
            x=x+1;
            return 0;
    }
    }
    while (p==0);

    
}
    public: NazivPredmeta()
    {
char Predmet[150];
    int x;
    int p;
    do
    {
        cout <<"Naziv Predmeta:\t";
        cin.getline(Predmet,150);
        x=0;
        p=1;
        while (Predmet[x]!='\0')
        {
            if (isalnum(Predmet[x]))
            {
                p=0;
            }
            x=x+1;
    }
    }
    while (p!=0);

        return 0;
}

kada ih pozovem u main-u to izgleda ovako
naravno i ostale funcije su definisane

PrijavljivanjeIspita a;

a.unesiIme();
a.NazivPredmeta();
a.unesiImeP();
a.BrIndexa();
a.unesiDatum();
a.unesiOcenu();

Sve to funkcionise kako treba osim toga sto mi prve dve funcije koje god bile uvek napise ovako u istom redu.
Unesite ime: Unesite naziv predmeta:
i samim tim mi daje mogucnost da unesem samo naziv predmeta a funcija unesiIme kao da je vec izvrsena. Pomozite :(





[Ovu poruku je menjao X Files dana 05.05.2008. u 07:27 GMT+1]
[ Branimir Maksimovic @ 05.05.2008. 06:12 ] @
Pretpostavljam da ovo nije kod koji stvarno koristis posto nigde ne
pamtis sta je uneto a i onaj return 0 u unesiIme strci.
Elem, pre nego sto ispises sa cout, prvo uradi cin.ignore(xxx) da ocistis
bilo sta sto je ostalo iz input bufera.
E sad mogao bi da proveris i cin.fail() nakon cin.getline te da uradis cin.clear() po potrebi,
tj da resetujes stanje inace ce svaki sledeci getline da failuje.

Pozzzzzzzzzzzz!
[ nemanjamil @ 05.05.2008. 10:24 ] @
</PRE><PRE>Hvala sto si pokusao da mi pomognes ali ja sam zbunjen jos vise. Na zalost ovo mi je pravi kod. Kako mogu da pamtim? Ipak sam pocetnik u ovome.</PRE></BLOCKQUOTE></td></tr></table><br>

Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now.
[ Branimir Maksimovic @ 05.05.2008. 13:12 ] @
Ako bas ne moras preporucio bih ti da objektno programiranje ucis
u javi ili C# ili nekom laksem jeziku.

Pozzzzzzzzzzz!
[ nemanjamil @ 05.05.2008. 14:20 ] @
Na zalost moram i to bas ovaj primer!

[Ovu poruku je menjao nemanjamil dana 05.05.2008. u 21:57 GMT+1]
[ karas @ 06.05.2008. 08:24 ] @
Ti si ovaj kod iskompajlirao?
[ nemanjamil @ 06.05.2008. 10:01 ] @
Da, bez problema
[ karas @ 06.05.2008. 11:34 ] @
Kako kad npr. velika zagrada koja završava klasu nema tačku-zarez i metoda NazivPredmeta() nema povratnu vrednost? Gcc odbija da prevede, ajde pokušaj da središ takve greške pre traženja glavnog problema i okači ceo kod lepo nazubljen.
[ nemanjamil @ 06.05.2008. 15:42 ] @
Pa problem je u tome sto mi ovo treba za fakultet i ne mogu ceo primer da okacim na forumu. Ovo su samo prve dve funcije a u prvoj klasi ih ima oko 10. Program ima oko 500-600 linija koda. U pravu si u kodu sam zaboravio da napisem }; a koliko ja znam funcija NazivPredmeta() ima return 0 jer nije void.
[ karas @ 06.05.2008. 19:23 ] @
Code:

int NazivPredmeta()

bi trebalo da stoji.
Inače, meni sledeći kod (samo sam popravio te dve greške) dozvoljava da unesem ime i prezime i naziv predmeta (nisam se udubljivao šta radi sa unesenim vrednostima):

Code:

#include <iostream>

using namespace std;


class PrijavljivanjeIspita
{
public:
    int unesiIme()
{
char UI[100];
    int x;
    int p;
    do
    {
        cout <<"Ime i prezime studenta:\t";
        cin.getline(UI,100);
        x=0;
        p=1;
        while (UI[x]!='\0')
        {
            if (isdigit(UI[x]))
            {
                p=0;
            }
            x=x+1;
            return 0;
    }
    }
    while (p==0);

    
}
    public: 
    int NazivPredmeta()
    {
char Predmet[150];
    int x;
    int p;
    do
    {
        cout <<"Naziv Predmeta:\t";
        cin.getline(Predmet,150);
        x=0;
        p=1;
        while (Predmet[x]!='\0')
        {
            if (isalnum(Predmet[x]))
            {
                p=0;
            }
            x=x+1;
    }
    }
    while (p!=0);

        return 0;

};


int main()
{
    PrijavljivanjeIspita pi;
    pi.unesiIme();
    pi.NazivPredmeta();
    
    return 0;
}

[ nemanjamil @ 08.05.2008. 09:39 ] @
Uspeo sam da resim problem. Ako neko bude imao isti ili slican problem resio sam ga ovako:
liniju cin.getline(UI,100); sam ponovio dva puta i to samo prvu funkciju koju pozivam. Vise se ne pojavljuje greska. Problem je bio u tome sto se u main() funkciji odabiralo koja klasa treba da se izvrsava. Pritiskom na recimo 1 izrsavala bi se i prva funkcija.


[Ovu poruku je menjao nemanjamil dana 08.05.2008. u 11:49 GMT+1]