Struktury i wpisanie do nich danych

0

Da się wpisać do składnika struktury coś za pomocą "->" w tym przypadku? widzę, że zapisem wskaźnikowym się da.

struct pizza{
string producent;
int cena;
int srednica;
};

int main()
{
    pizza pierwsza[3];
    for(int i=0;i<3;i++){
    cout << "Podaj nazwe firmy [" << i+1 << "]:";
    getline(cin,pierwsza[i].producent);
    cout << "Podaj cene [" << i+1 << "]:";
    cin >> pierwsza[i].cena;
    cout << "Podaj srednice pizzy [" << i+1 << "]:";
    cin >> (*(pierwsza+i)).srednica;
    cout << endl << endl;
    cin.get();
    }

    for(int i=0;i<3;i++){
    cout << "Firma [" << i+1 << "]: " << endl << "-----------------------" <<
    endl << "nazwa: " << pierwsza[i].producent << endl << "cena: " <<
    pierwsza[i].cena << endl << "srednica: " << pierwsza[i].srednica << endl << endl;
    }

    cout << "Hello world!" << endl;
1

W tym przypadku nie, -> jest używany dla zmiennych przechowywanych na stercie, Ty swoją tablicę alokujesz na stosie, więc musisz używać ..

EDIT
patrz komentarze.

2

-> używasz jeśli masz wskaźnik na strukturę

. - jeśli masz "wartość"

W Twoim przykładzie gdy masz tablicę struktur nie ma żadnego rozsądnego uzasadnienia do stosowania notacji wskaźnikowej (poza oczywiście przypadkiem "prowadzący kazał tak zrobić").

Jeśli bardzo chcesz, to coś takiego powinno działać (piszę bez sprawdzenia)

    pizza p[3];

    p[0].cena = 10;
    p->cena = 10;
    (*p).cena = 10;

    p[1].cena = 20;
    (p+1)->cena = 20;
    (*(p+1)).cena = 20;
0

@Bartłomiej Golenko: tak też zrobiłem (*(pierwsza+i)).srednica; spróbuje ten ze strzałką p+1->cena co napisałeś, o to mi chodziło

0

Strasznie się kopiecie, jakieś niemal teorie spiskowe.
A wystarczy sięgnąć do bardzo prostych definicji. Ze wskaźnika wyłuskuje się składową strzałką, inne (z wartości, z referencji C++) kropką.
Jedyny pozytywny głos to @enedil

Czymś oddzielnym jest przechodniość notacji tablicowej we wskaźnikową, i na odwrót. O tym należało dać kilka słów terorii (skądinąd, od teorii się nie umiera)
@Bartłomiej Golenko zlewając dwa zagadnienia do jednego znakomicie zwiększyłeś entropię w tym wątku.

@NewbieKodeRR: obawiam się uzyskałeś "kompilator nie pyskuje", ale czy zrozumienie ???

1 użytkowników online, w tym zalogowanych: 0, gości: 1