struktury tablice i string
Ostatnio zmodyfikowano 2017-10-12 18:09
Lentyl Temat założony przez niniejszego użytkownika |
struktury tablice i string » 2017-10-12 09:40:36 Witam robiłem sobie ćwiczenie z książki język C++ szkoła programowania. Trzeba stworzyć strukturę tablice z niej później trzeba to wypisać nie używam pętli bo nie prosili wszystko jest ok do czasu przejścia do stringa [1] który się nie zapisuje kompilator przeskakuje do następnego wiersza Pytanie brzmi dlaczego? Druga kwestia to we wcześniejszym ćwiczeniu powiedziano mi żebym zamienił kolejność nazwy z średnicą do czasu kiedy nie zamieniłem w strukturze kompilator nie działał poprawnie dlaczego myślałem, że ja mogę się odwoływać do poszczególnych części struktury jak do zmiennych "nazwa.pole struktury" może źle to robię i jest jakiś sposób za wszystkie odpowiedzi bardzo dziękuje. Ps Wiem, że pytania mogą wydać się infantylne i to zadanie także jednak zależy mi na zrozumieniu mechanizmów dziękuje. #include <iostream> #include <string> using namespace std;
struct pizza { string nazwa; float srednica; float waga; };
int main() {
pizza *nap = new pizza[3];
cout<<" Podaj nazwe: "; getline(cin, nap->nazwa); cout<<" Podaj srednice: "; cin>>nap->srednica; cout<<" Podaj wage: "; cin>>nap->waga;
cout<<" Podaj nazwe: "; getline(cin, nap[1].nazwa); cout<<" Podaj srednice: "; cin>>nap[1].srednica; cout<<" Podaj wage: "; cin>>nap[1].waga;
cout<<" Podaj nazwe: "; getline(cin, nap[2].nazwa); cout<<" Podaj srednice: "; cin>>nap[2].srednica; cout<<" Podaj wage: "; cin>>nap[2].waga;
cout<<nap->nazwa<<endl; cout<<nap->srednica<<endl; cout<<nap->waga<<endl;
cout<<(nap+1)->nazwa<<endl; cout<<(nap+1)->srednica<<endl; cout<<(nap+1)->waga<<endl;
cout<<(nap+2)->nazwa<<endl; cout<<(nap+2)->srednica<<endl; cout<<(nap+2)->waga<<endl;
delete nap;
return 0; } . |
|
michal11 |
» 2017-10-12 09:48:24 Po pierwsze ciężko się czyta to co napisałeś ponieważ nie stosujesz przecinków. Po drugie mieszasz getline z cin, to prowadzi do błędów, albo czyść bufor albo to jakoś przerób tak aby korzystać tylko z jednej metody wczytywania danych, więcej szczegółów znajdziesz w tutejszym kursie dot. wczytywania danych ze standardowego strumienia. |
|
Anim |
» 2017-10-12 16:26:25 dodatkowo w Twoim przypadku pamięć musisz zwolnić w następujący sposób |
|
nanoant20 |
» 2017-10-12 18:09:08 napisz sobie w każdej ostatniej linijce tam gdzie pobierasz wagę coś takiego (cin >> nap.waga).get(); pizza * nap = new pizza[ 3 ];
getline( cin, nap[ 0 ].nazwa ); ( cin >> nap[ 0 ].srednica ).get(); ( cin >> nap[ 0 ].waga ).get();
itd...
delete[] nap;
|
|
« 1 » |