C++ i deklariranje char-a

poruka: 14
|
čitano: 2.044
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
C++ i deklariranje char-a

class Osoba{

 

    public:

       char ime[20],prezime[20], spol;

       int Postavi_atribute_O () {};

       int Ispisi_atribute_O () {};

};

 

 

 

int main()

{

   Osoba U1;

 U1.ime[30]="asd";

   cout<<U1.ime;

   getch();

 

}

ne shvaćam zašto u main funkciji ne mogu deklarirati bilo koji tekst koji je vezan za ime[] varijablu?

 
0 0 hvala 0
13 godina
neaktivan
offline
Re: C++ i deklariranje char-a

Nisam siguran možda što si mijenjao broj članova polja u klasi i main funkciji, ali nisam siguran.

Life is Computers, Tobacos, Women, Trucks, you live better?
15 godina
neaktivan
offline
Re: C++ i deklariranje char-a
mislim da ne.
kad napišem U1.ime="asd";
opet ne radi ?
16 godina
neaktivan
offline
Re: C++ i deklariranje char-a

Naravno da ne radi kad nemaš returna u main funkciji.

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
13 godina
neaktivan
offline
C++ i deklariranje char-a

...

Life is Computers, Tobacos, Women, Trucks, you live better?
Poruka je uređivana zadnji put pet 17.5.2024 14:08 (royalhero).
 
1 0 hvala 1
13 godina
neaktivan
offline
Re: C++ i deklariranje char-a

...

Life is Computers, Tobacos, Women, Trucks, you live better?
Poruka je uređivana zadnji put pet 17.5.2024 14:08 (royalhero).
15 godina
neaktivan
offline
Re: C++ i deklariranje char-a
royalhero kaže...

class Osoba{

 

    public:

       char ime[20],prezime[20], spol;

       int Postavi_atribute_O () {};

       int Ispisi_atribute_O () {};

};

 

 

 

int main()

{

   Osoba U1;

 cin>>U1.ime;

   cout<<U1.ime<<endl;

   system("PAUSE");

 

}

Ovako mi radi, a kad dodjeljujem izbaci:
 invalid conversion from `const char*' to `char'

ja bih da ja sam u programu napišem to "ime" bez da ga netko unese

14 godina
neaktivan
offline
Re: C++ i deklariranje char-a

char polje nije string objekt pa mu moraš dodijeliti vrijednost pomoću strcpy funkcije. npr:

 

strcpy(U1.ime, "Ante");

 

Tu već možeš vidjeti prednosti objektnog pristupa jer preko stringa (objekta) možeš koristiti = (direktno pridruživanje) dok kod proceduralnog pristupa moraš koristiti funkcije tipa strcpy.

Poruka je uređivana zadnji put ned 30.10.2011 20:27 (TracerCPP).
15 godina
neaktivan
offline
Re: C++ i deklariranje char-a
TracerCPP kaže...

char polje nije string objekt pa mu moraš dodijeliti vrijednost pomoću strcpy funkcije. npr:

 

strcpy(U1.ime, "Ante");

 

Tu već možeš vidjeti prednosti objektnog pristupa jer preko stringa (objekta) možeš koristiti = (direktno pridruživanje) dok kod proceduralnog pristupa moraš koristiti funkcije tipa strcpy.

e ovo radi, ali to mi nije ni palo na pamet :O

hvala

17 godina
neaktivan
offline
Re: C++ i deklariranje char-a
Luuka kaže...

Naravno da ne radi kad nemaš returna u main funkciji.

Nema veze, return bi trebao staviti, ovak ga najvjerojatnije umjesto njega stavi kompajler sam i izbaci warning. Makisa, ipak stavi return, nemoj se oslanjati na "radi i ovako".

 

Mozes koristiti i string klasu iz STL-a, odmah mozes i gro metoda upotrijebiti nad tim objektom.

The Unix philosophy basically involves giving you just enough rope to hang yourself. And then a couple of feet more, just to be sure.
Poruka je uređivana zadnji put ned 30.10.2011 20:59 (1domagoj1).
17 godina
offline
C++ i deklariranje char-a

Zašto uopće i koristiš char niz kao podatkovni član klase, pošto se radi o C++ logično je da koristiš string niz.

 
0 0 hvala 0
13 godina
neaktivan
offline
Re: C++ i deklariranje char-a

...

Programming is understanding. – Kristen Nygaard
Poruka je uređivana zadnji put pet 17.5.2024 14:09 (royalhero).
17 godina
neaktivan
offline
Re: C++ i deklariranje char-a
royalhero kaže...

Možda su tako učili u školi, mada nebih rekao, da je za školu većina bi ih rekli "imal koja dobra duša da mi uradi ovaj zadatak".
Da koristi string, učitavaj ga preko gets() funkcije, za stringove je bolja od cin-a.

Bolje ovako (ako oboje mislimo na string klasu):

 

#include <iostream>
#include <ostream>
#include <string>

int main()
{
    std::string moj_string;

    std::cin >> moj_string;
    std::cout << moj_string;

    return 0;
}

 

S tim da ce gornje rjesenje kad naleti na whitespace prestati unositi podatke u string. Ako mu trebaju i whitespaceovi, onda ovako:

 

#include <iostream>
#include <ostream>
#include <string>

int main()
{
    std::string moj_string;

    std::getline(std::cin, moj_string);
    std::cout << moj_string;

    return 0;
}

 

Za vise informacija o ovim funkcijama pogledati referencu.

The Unix philosophy basically involves giving you just enough rope to hang yourself. And then a couple of feet more, just to be sure.
13 godina
neaktivan
offline
Re: C++ i deklariranje char-a

...

Programming is understanding. – Kristen Nygaard
Poruka je uređivana zadnji put pet 17.5.2024 14:09 (royalhero).
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice