Tak diky moc za vysvetleni, ale porovnal jsem to s prikladem kterej delam ted a zas mi tam neco nejde, ty struktury jsou desny. Zepta se to na pocet aut a ty pak zadavam. Jenze kdyz zadam 1 auto, tak to po zadani nazvu spadne. Kdyz zadam 2 auta, tak to vezme obe hodnoty a pri zadani jmena druheho auta to zas spadne. Myslim ze je to chyba toho cin >> jak nechava ten enter ve fronte. Ale zkousel sem to odmazat tim cin.get() a stejne to nepomohlo, tak kde je chyba? :( ... Kod:
#include <iostream>
using namespace std;
struct automobil {
char * nazev;
int rok;
};
int a;
int main()
{
cout <<"Kolik vozu do katalogu chcete pridat? ";
cin >>a;
cin.get();
automobil * vuz = new automobil[a];
for (int b=0; b<a; b++)
{
cout <<"\nCar #"<<b+1<<":"<<endl;
cout <<"Please enter the make: "; cin.getline(vuz.nazev,80);
cout <<"\nPlease enter the year made: "; cin >> vuz.rok; cin.get();
}
cout <<"Here is your colection:\n";
for (int c=0; c<a; c++)
{
cout <<vuz[c].rok<<"\t"<<vuz[c].nazev<<endl;
}
cout<<endl;
system("PAUSE");
return 0;
}
A taky by me zajimala jedna vec. Kdyz tu structuru vlastne tvorim pomoci ukazatele a pomoci new (je snad jedno ze je to pole structur ne?) tak proc pak nefunguje volani clenu stylem vuz[c]->nazev kdyz by to mel bejt ukazatel ne? Na zacatku je preci uvedeno automobil * vuz = new automobil. Díky za vysvětlení.